首页 > 解决方案 > Hibernate 如何创建限制参数

问题描述

我对 Hibernate 很陌生,我正在尝试了解如何Restriction使用 Criteria。我有一个ACCOUNTSid, user_id, date。我想抓取ACCOUNTSid表并根据将给我的行过滤掉。

我发现我可以使用Restriction.eq("", Object). 我想知道我正在尝试做的事情是否正确。这是我的代码:

final Criteria crit = session.createCriteria(Accounts.class).add(Restrictions.eq("id", accountId));

accountId给定 accountId,这将是简单的String

"id"在 xml 文件中定义如下:

<class name="com.xxxxxxx.Accounts" table="ACCOUNTS">
    <id name="id" type="java.lang.Long">
        <column name="ID"/>
        <generator class="sequence">
            <param name="sequence_name">ACCOUNTS_ID_SEQ</param>
            <param name="sequence">ACCOUNTS_ID_SEQ</param>
        </generator>
    </id>

这行得通吗?我不确定是否accountId会从 crit 中过滤掉行。如果它不起作用,那么处理这个问题的正确方法是什么?

标签: javahibernate

解决方案


您的代码示例是完全正确的。你有什么特别的理由怀疑自己吗?

    public Accounts getById(final String id) {

        final Criteria cr = session.createCriteria(Accounts.class);
        cr.add(Restrictions.eq("id", id));
        return (Accounts) cr.uniqueResult();
    }
    

推荐阅读