`
bto310
  • 浏览: 13442 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

Hibernate Criteria对关联查询的实现

阅读更多
关联查询可分为两种:

A) 实体间有定义关联关系的(一对多,多对一等)

对已定义关联关系的,我们可以使用createAlias()来创建属性的别名,然后引用别名进行条件查询,如:
Criteria criteria = session.createCriteria(Parent.class); 
criteria.createAlias("children", "c").add(Expression.eq( "c.name" ,  childName));

这样进行查询时就可得到关联查询后的Parent对象结果集。
要注意的是,如果在createAlias()之后,又使用了setProjection(如查询总记录数),这样得到的查询结果集中,每个对象并不是Parent类型,而是一个对象数组(Object[]),里边有一个Parent对象和一个Child对象,需要根据object的类名去判断是哪个对象。

如果还要恢复默认的结果集状态,需调用
criteria.setResultTransformer(Criteria.ROOT_ENTITY);

B) 实体间未定义关联关系的

对未定义关联关系的,我们需要使用Exist子查询来辅助,如:
Criteria criteria = session.createCriteria(Brother.class, "b"); 
DetachedCriteria sisCri = DetachedCriteria.forClass(Sister.class, "s");
sisCri.add(Property.forName("s.fName").eqProperty("b.fName"));
criteria.add(Subqueries.exists(sisCri.setProjection(Projections.property("s. id "))));
分享到:
评论

相关推荐

    hibernate如何使用criteria联合查询 group by 的语句

    这个案例是根据分组查询,并且得到每组的条数,不懂得可以q我:1710086675,欢迎认识更多新朋友

    hibernate criteria 分组 排序 关联

    hibernate criteria 分组 排序 关联 hibernate criteria 分组 排序 关联

    Criteria连表查询

    Hibernate中的Criteria连表查询,包括单表属性查询,多表内连,以及左外连接查询

    Hibernate 多表连接分页查询示范项目

    Hibernate 多表连接分页查询示范项目 Hibernate Criteria 多表连接 分页

    关联映射hibernate的criteria的用法

    通过该源代码可以详细的了解hibernate的criteria的用法,有助于快速的帮助初学者建立hibernate中面向对象的查询,

    自定义查询框架Criteria

    我尝试着模仿hibernate的criteria构建这么一个轻量级查询框架,提供一下特点: 1 可以根据前台传过来的查询数据自动构建查询条件 2 可以生成纯SQl 3 也可以直接使用preparestatement进行查询,返回我们想要的数据。 ...

    Hibernate+中文文档

    6.2.4. 值集合于多对多关联(Collections of values and many-to-many associations) 6.2.5. 一对多关联(One-to-many Associations) 6.3. 高级集合映射(Advanced collection mappings) 6.3.1. 有序集合...

    hibernate3.2中文文档(chm格式)

    6.2.4. 值集合于多对多关联(Collections of values and many-to-many associations) 6.2.5. 一对多关联(One-to-many Associations) 6.3. 高级集合映射(Advanced collection mappings) 6.3.1. 有序集合...

    HibernateAPI中文版.chm

    6.2.4. 值集合于多对多关联(Collections of values and many-to-many associations) 6.2.5. 一对多关联(One-to-many Associations) 6.3. 高级集合映射(Advanced collection mappings) 6.3.1. 有序集合...

    使用Hibernate开发租房系统

    HibernaCte关联映射,HQL实用技术,HQL进阶,Criteria查询

    Hibernate 中文 html 帮助文档

    6.2.4. 值集合于多对多关联(Collections of values and many-to-many associations) 6.2.5. 一对多关联(One-to-many Associations) 6.3. 高级集合映射(Advanced collection mappings) 6.3.1. 有序集合(Sorted ...

    Hibernate中文详细学习文档

    6.2.4. 值集合于多对多关联(Collections of values and many-to-many associations) 6.2.5. 一对多关联(One-to-many Associations) 6.3. 高级集合映射(Advanced collection mappings) 6.3.1. 有序集合...

    最全Hibernate 参考文档

    6.2.4. 值集合于多对多关联(Collections of values and many-to-many associations) 6.2.5. 一对多关联(One-to-many Associations) 6.3. 高级集合映射(Advanced collection mappings) 6.3.1. 有序集合(Sorted ...

    hibernate 体系结构与配置 参考文档(html)

    15. 条件查询(Criteria Queries) 15.1. 创建一个Criteria 实例 15.2. 限制结果集内容 15.3. 结果集排序 15.4. 关联 15.5. 动态关联抓取 15.6. 查询示例 15.7. 投影(Projections)、聚合(aggregation)和分组...

    hibernate 教程

    值集合和多对多关联(Collections of Values and Many-To-Many Associations) 6.4. 一对多关联(One-To-Many Associations) 6.5. 延迟初始化(延迟加载)(Lazy Initialization) 6.6. 集合排序(Sorted ...

    Hibernate教程

    7.2.4. 值集合于多对多关联(Collections of values and many-to-many associations) 7.2.5. 一对多关联(One-to-many Associations) 7.3. 高级集合映射(Advanced collection mappings) 7.3.1. 有序集合(Sorted...

    Hibernate_3.2.0_符合Java习惯的关系数据库持久化

    6.2.4. 值集合于多对多关联(Collections of values and many-to-many associations) 6.2.5. 一对多关联(One-to-many Associations) 6.3. 高级集合映射(Advanced collection mappings) 6.3.1. 有序集合...

    Hibernate3的帮助文档

    11.4.3. 条件查询(Criteria queries) 11.4.4. 使用原生SQL的查询 11.5. 修改持久对象 11.6. 修改脱管(Detached)对象 11.7. 自动状态检测 11.8. 删除持久对象 11.9. 在两个不同数据库间复制对象

    hibernate3.04中文文档.chm

    7.2.4. 值集合于多对多关联(Collections of values and many-to-many associations) 7.2.5. 一对多关联(One-to-many Associations) 7.3. 高级集合映射(Advanced collection mappings) 7.3.1. 有序集合...

    Hibernate3+中文参考文档

    6.2.4. 值集合于多对多关联(Collections of values and many-to-many associations) 6.2.5. 一对多关联(One-to-many Associations) 6.3. 高级集合映射(Advanced collection mappings) 6.3.1. 有序集合(Sorted ...

Global site tag (gtag.js) - Google Analytics