java - Hibernate 如何创建限制参数
问题描述
我对 Hibernate 很陌生,我正在尝试了解如何Restriction
使用 Criteria。我有一个ACCOUNTS表id, 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 中过滤掉行。如果它不起作用,那么处理这个问题的正确方法是什么?
解决方案
您的代码示例是完全正确的。你有什么特别的理由怀疑自己吗?
public Accounts getById(final String id) {
final Criteria cr = session.createCriteria(Accounts.class);
cr.add(Restrictions.eq("id", id));
return (Accounts) cr.uniqueResult();
}
推荐阅读
- python - 在keras中从一开始就训练有很高的准确率是正常的吗?
- pandas - 使用日期时间组件作为级别的多索引重新索引
- php - 如何选择所有前后没有空格的“?
- objective-c - 在 Objective-C 代码中使用 Swift 的缺点?
- javascript - @Html.Partial 之后的 Ko 绑定不起作用
- python - Selenium:检查元素是否存在于循环中,如果为真,则单击,如果不存在则继续
- asp.net-identity - 使用带有 aspnet.identity 的简单注入器
- jdbc - 如何使用 Grafana 监控 JDBC 调用和统计信息
- openssl - 如何创建自己的扩展验证证书以显示绿条?
- matlab - 在matlab中创建间隔[a,b]的线性对数对数线性分区,但匹配步骤