灵活使用Hibernate的查询对象DetachedCriteria
程序员文章站
2022-04-16 08:53:13
...
Hibernate提供了HQL,方便查询的编写。但是在某些情况下,我更喜欢用Criteria,因为它的语义非常明确。
在处理对象关联的时候,经常要对对象下的某个集合字段进行条件限制。比如下面的类:
在初始化数据中,假设MainClass的实例m1含有SubClass的实例s1,s2,s3;MainClass的实例m2含有SubClass的实例s2,s3,s4。
而其中s1,s2,s3,s4的value分别是1,2,3,4
现在要查询出 MainClass中SubClass集合含有SubClass实例value为2的的MainClass实例并且type为1,可以使用下面的查询方法:
执行此查询对象后会得到符合条件的MainClass实例。
需要注意的是在获取的MainClass实例中,subs是完全的记录集,而不是经过过滤的记录集,也就是相当于根据MainClass的ID获取的完整实例一样。
ps:
如果需要过滤subs的记录集,需要使用额外的过滤方法,请参考Hibernate的具体实现。
使用HQL也可以很方便地实现,但是需要给出完整的join标记,不如createAlias来得方面和直观。
上一篇: linux解决tomcat内存溢出并测试
下一篇: Hibernate 一对一关联映射
推荐阅读
-
PHP使用mysql_fetch_object从查询结果中获取对象集的方法
-
hibernate使用HibernateCallback回调的方法查询SQL时couldnotexecutequery--作怪的别名
-
深入分析使用mysql_fetch_object()以对象的形式返回查询结果
-
教你使用Hibernate的QBC查询(转载)
-
Hibernate学习笔记(2):Hibernate中子查询(subselect)的使用
-
深入分析使用mysql_fetch_object()以对象的形式返回查询结果
-
使用LinQ实现对数据对象的查询
-
Atitit.Hibernate中Criteria使用总结and关联查询and按照子对象查
-
PHP使用mysql_fetch_object从查询结果中获取对象集的方法
-
使用 Django Q F 对象构建复杂的查询