`

hibernate 关联查询

 
阅读更多
hibernate 外键关联查询
Warehouse 外键关联 position ,position外键关联shelf,shelf外检关联house。

关联查询使用条件houseid = 1
Criteria criteria = session.createCriteria(Warehouse);
criteria.createAlias("position", "position"); 关联查询position表
criteria.createAlias("position.shelf", "shelf") 通过position的外键关联查询shelf表
criteria.add(Expression.eq("shelf.house.houseid" , "1")) 已shelf表的外键做条件

如果查询house中的name,还需要关联house表
条件housename="xxx";

Criteria criteria = session.createCriteria(Warehouse);
criteria.createAlias("position", "position"); 关联查询position表
criteria.createAlias("position.shelf", "shelf") 通过position的外键关联查询shelf表
criteria.createAlias("shelf.house", "house") 通过shelf的外键关联查询house表
criteria.add(Expression.eq("house.housename" , "xxx")) 已shelf表的外键做条件
criteria.setResultTransformer(criteria.DISTINCT_ROOT_ENTITY) 去掉重复记录
criteria.list() 查询

如果Warehouse 和 position是 oneToMany的关系,且WareHouse使用了 @oneToMany的mappedBy属性 list<position> positions = ..;
可以使用下面方式查询

Criteria criteria = session.createCriteria(Warehouse.class);
criteria.createAlias("positions", "positions"); 关联查询position表
criteria.createAlias("position.shelf", "shelf") 通过position的外键关联查询shelf表
criteria.createAlias("shelf.house", "house") 通过shelf的外键关联查询house表
criteria.add(Expression.eq("house.housename" , "xxx")) 已shelf表的外键做条件
criteria.setResultTransformer(criteria.DISTINCT_ROOT_ENTITY) 去掉重复记录
criteria.list() 查询


分享到:
评论

相关推荐

    hibernate关联查询 实例源码

    hibernate关联查询 实例源码 java web 如果不明白hibernate关联查询不明白的可以看看,保证马上学会,注释,数据库都有,很简单易学的源码,谢谢下载!

    hibernate关联查询

    **hibernate关联查询详解** Hibernate,作为Java领域中的一款流行的ORM(对象关系映射)框架,极大地简化了数据库操作,使得开发者可以使用面向对象的方式来处理数据库事务。在实际项目中,我们经常需要处理对象...

    hibernate多表联合查询

    ### Hibernate多表联合查询详解 #### 一、引言 在实际项目开发中,我们经常需要处理复杂的数据库查询,特别是涉及到多个表之间的关联查询。Hibernate作为一款流行的Java持久层框架,提供了一种非常便捷的方式来处理...

    hibernateHQL关联查询

    ### Hibernate HQL 关联查询详解 #### 一、引言 在进行数据库操作时,关联查询是必不可少的一部分,尤其在处理复杂的数据结构时更是如此。Hibernate作为一种流行的Java持久层框架,提供了强大的对象关系映射(ORM...

    Hibernate连表查询 Hibernate连表查询

    根据提供的文件信息,我们可以深入探讨Hibernate中的连表查询方法及其应用。下面将详细介绍与标题、描述及部分代码相关的几个核心知识点: ### Hibernate 连表查询基础 Hibernate 是一个开源的对象关系映射(ORM)...

    hibernate关联映射详解

    hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,包含4个说明文档,分别详细解说了hibernate关联映射的...

    Hibernate关联关系练习【全】

    总之,Hibernate关联关系是理解其工作原理的关键,它使得Java对象和数据库记录之间的映射变得简单。通过练习,你可以掌握如何配置和使用这些关系,以及如何进行相关的查询操作,从而提升你的开发效率和代码质量。...

    hibernate映射关系关联查询

    关于hibernate的关联操作 分享下

    Hibernate中查询语句

    Hibernate中的查询方法若HQL,详细讲解HQL与使用的具体例子

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

    总结,"Hibernate 多表连接分页查询示范项目"是一个实用的示例,它展示了如何在实际应用中利用 Hibernate Criteria API 实现复杂查询和分页,对于学习和掌握 Hibernate 的高级特性和数据库操作技巧非常有帮助。...

    hibernate关联映射实例

    本文将深入探讨“hibernate关联映射实例”中的关键知识点,包括一对多、多对多和继承映射,这些都是Hibernate中至关重要的概念。 1. **一对多关联映射**: 在现实世界中,一个实体可能会与多个其他实体相关联,...

    hibernate子查询

    在使用Hibernate进行数据查询时,有时会遇到需要使用子查询的情况。然而,正如你所描述的,Hibernate的HQL(Hibernate Query Language)并不直接支持在`FROM`子句后跟一个子查询,这与标准的SQL语法有所差异。在HQL...

    Hibernate的MySql查询.rar

    本文将深入探讨在使用Hibernate进行MySQL查询时的一些关键知识点,以帮助开发者更好地理解和应用这些技术。 首先,我们需要理解Hibernate的核心概念。Hibernate通过提供一个中间层,将Java对象与数据库表进行映射,...

    hibernate 级联查询

    “Hibernate 级联查询”是指在使用Hibernate这个Java持久化框架时,如何处理对象之间的关联查询。Hibernate提供了级联操作来简化数据的保存、更新和删除等操作,使得开发者无需手动编写复杂的SQL语句,就能实现关联...

    hibernate实现递归查询

    在查询数据库时,递归查询意味着我们查询一个记录,然后根据该记录的某些属性再查询其关联的记录,这个过程可能反复进行,直到满足某个终止条件。 在Hibernate中,我们可以利用HQL(Hibernate Query Language)或 ...

    Hibernate的高级查询

    当我们需要进行更复杂的数据库查询时,Hibernate提供了丰富的高级查询功能,这正是“Hibernate的高级查询”这一主题的核心所在。 在Hibernate中,高级查询主要包括HQL(Hibernate Query Language)、Criteria API和...

    hibernate联合主键全攻略

    在探讨Hibernate中联合主键的使用时,我们首先需要理解什么是联合主键以及它在Hibernate框架中的实现方式。联合主键(Composite Primary Key),是指在数据库表中使用两个或多个字段共同作为主键来唯一标识每一行...

    Hibernate在查询条件中创建List集合

    这里的`createCriteria`方法用于定义查询的目标类,`"u"`是别名,便于后续的关联操作。`createCriteria("orders")`表示我们要查询User类中的orders属性,然后使用`add`方法添加限制条件,`Restrictions.in("id", ...

    Hibernate 函数 ,子查询 和原生SQL查询

    4. **关联子查询**:子查询可以与主查询的关联一起使用,用于更复杂的条件判断。 **原生SQL查询** 虽然Hibernate提供了ORM的方式,但有时我们可能需要使用原生的SQL查询来访问数据库,尤其是当ORM无法满足复杂需求...

Global site tag (gtag.js) - Google Analytics