问题描述
我对Hibernate还是陌生的,我试图了解Restriction
如何与Criteria一起使用。我有一个带有id,user_id,date
的 ACCOUNTS 表。我想获取 ACCOUNTS 表并根据id
过滤出将要提供给我的行。
我发现我可以使用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
是否会从暴击中过滤掉行。如果不起作用,正确的处理方法是什么?
解决方法
您的代码示例是完全正确的。您是否有任何怀疑自己的特殊原因?
public Accounts getById(final String id) {
final Criteria cr = session.createCriteria(Accounts.class);
cr.add(Restrictions.eq("id",id));
return (Accounts) cr.uniqueResult();
}