java – Hibernate的Criteria API是否仍然不支持嵌套关系
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – Hibernate的Criteria API是否仍然不支持嵌套关系,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1288字,纯文字阅读大概需要2分钟。
内容图文
![java – Hibernate的Criteria API是否仍然不支持嵌套关系](/upload/InfoBanner/zyjiaocheng/821/5ed0b4d5c36d43f9b56a9f020991d0be.jpg)
我想使用Hibernate的Criteria API来准确地说出每个人所说的最可能的用例,应用复杂的搜索条件.问题是,我想要查询的表不是完全由原始值组成,而是部分来自其他对象,我需要查询这些对象的id.
我从2年前发现了this article,这表明这是不可能的.以下是我尝试无效的方法,还有Hibernate的其他方面,我知道在字符串文字中支持这种点符号以表示对象嵌套.
if (!lookupBean.getCompanyInput().equals("")) {
criteria.add(Restrictions.like("company.company", lookupBean.getCompanyInput() + "%"));
}
编辑:
这是我正确考虑的代码,用于完成我上面尝试的内容,使用下面第一个答案的建议;请注意,我甚至使用额外的createCriteria调用来对另一个关联的对象/表中的属性进行排序:
if (!lookupBean.getCompanyValue().equals("")) {
criteria.createCriteria("company").add(
Restrictions.like("company", lookupBean.getCompanyValue() + "%"));
}
List<TrailerDetail> tdList =
criteria.createCriteria("location").addOrder(Order.asc("location")).list();
解决方法:
不完全确定我遵循你的例子,但是当然可以在关联实体上指定过滤条件,只需嵌套Criteria对象以形成树.例如,如果我有一个名为Order的实体与User实体具有多对一关系,我可以使用如下查询找到名为Fred的用户的所有订单:
List<Order> orders = session.createCriteria(Order.class)
.createCriteria("user")
.add(eq("name", "fred"))
.list();
如果你在谈论一个与自身有关系的实体,那也应该有效.如果需要过滤关联对象的ID,也可以将“name”替换为“id”.
内容总结
以上是互联网集市为您收集整理的java – Hibernate的Criteria API是否仍然不支持嵌套关系全部内容,希望文章能够帮你解决java – Hibernate的Criteria API是否仍然不支持嵌套关系所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。