public class Emp {
private int id;
private String name;
private Dept dept;
}
public class Dept {
private int id;
private String name;
private Set<Emp> emps;
}
//##################################
<class name="com.tom.Emp" >
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="identity" />
</id>
<property name="name" />
<many-to-one name="dept" column="dept_id" class="com.tom.Dept" />
</class>
//##################################
<class name="com.tom.Dept" >
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="identity" />
</id>
<property name="name" />
<set name="emps">
<key column="dept_id"/>
<one-to-many class="com.tom.Emp"/>
</set>
</class>
//##################################
INSERT INTO `dept` (`id`,`name`) VALUES
(1,'技术部1'),
(2,'技术部2'),
(3,'财务部门');
INSERT INTO `emp` (`id`,`name`,`dept_id`) VALUES
(1,'tom',1),
(2,'jerry',1),
(3,'tom2',2),
(4,'jerry2',2),
(5,'kaka',NULL);
//String hql = "select d.name , d.emps.name from com.tom.Dept d";
//String hql = "select e.dept.name ,e.name from com.tom.Emp e right join e.dept";
//String hql = "select e.dept.name ,e.name from com.tom.Emp e left join e.dept";
//for(Object[] o : oo){
// System.out.println("部门名称"+o[0]+"雇员名称"+o[1]);
//}
分享到:
相关推荐
本文将重点介绍Hibernate中的关联查询,并深入探讨HQL关联查询的实现原理及应用场景。 #### 二、数据库表连接概述 在理解Hibernate HQL关联查询之前,我们需要先回顾一下数据库表连接的基本概念及其分类。数据库表...
使用`JOIN`关键字可以实现对象之间的关联查询,包括内连接(INNER JOIN)、外连接(LEFT JOIN、RIGHT JOIN)。 8. **子查询**: HQL支持在查询语句中嵌套查询,可以作为WHERE子句的一部分,也可以在SELECT语句中...
HQL(Hibernate Query Language)是 Hibernate 中的一种强大的查询语言,它看起来很像 SQL,但是不要被语法结构上的相似所迷惑,HQL 是非常有意识的被设计为完全面向对象的查询,它可以理解如继承、多态和关联之类的...
通过JOIN关键字,HQL能够处理实体间的关联,从而实现对关联实体的查询。例如,“JOIN cat.mate as mate”用于内连接,而“LEFT JOIN cat.kittens as kitten”则用于左外连接,以便处理可能存在空值的情况。 5. **...
- 可以直接在HQL中查询关联的对象,如LEFT JOIN、INNER JOIN等。 - 通过导航属性访问关联对象,无需明确指定JOIN语句。 7. **子查询** - HQL支持在SELECT、FROM、WHERE子句中使用子查询。 - 子查询可以返回单个...
Hibernate 支持多种方式来实现多表连接查询,包括 HQL(Hibernate Query Language)和 Criteria 查询。本项目主要关注 Criteria API 的使用,这是一种基于 Java 对象的查询方式,更加灵活且易于理解和维护。 **...
例如,假设我们有一个`Student`类,包含`name`和`age`属性,一个简单的HQL查询可能如下: ```sql SELECT s FROM Student s WHERE s.age > 18 ``` 这个查询会返回所有年龄大于18岁的学生对象。 **2. HQL的SELECT...
**HQL**(Hibernate Query Language)是Hibernate框架推荐使用的查询语言,它提供了一种面向对象的方式来查询数据库,支持多种复杂的查询操作,如继承、多态及关联关系的查询。 ##### 默认数据库表和数据 在本文档...
2. **HQL(Hibernate Query Language)**: Hibernate特有的查询语言,类似于SQL,但更面向对象。 3. **Criteria查询**: 提供一种面向对象的查询方式,通过Criteria和DetachedCriteria构建查询条件。 4. ** ...
这些连接操作可以帮助开发人员在多个表之间建立关联,从而实现更复杂的查询需求。 1. **内连接**: ```hql select employee.ID as id1, employee.Name as name1, department.ID as id2, department.Name as name2...
HQL 中的 JOIN 语句用于关联多个表,包括 INNER JOIN、LEFT JOIN、RIGHT JOIN 和 FULL JOIN。 * INNER JOIN:select employee.ID as id1,employee.Name as name1,department.ID as id2,department.Name as name2 ...
### HQL连接查询和注解使用总结 ...以上总结了HQL连接查询的不同类型及其语法特点,以及如何在Hibernate中利用注解配置持久化类及其关联关系。这些知识对于理解和使用Hibernate进行高效数据库操作至关重要。
HQL(Hibernate Query Language)是 Hibernate 框架中的一种强大的查询语言,它类似于 SQL 语句,但是它是完全面向对象的查询语言,可以理解继承、多态和关联等概念。 大小写敏感性问题 在 HQL 中,除了 Java 类与...
Hibernate 查询语言(HQL)是一种功能强大的查询语言,它与 SQL 在语法上有一定的相似性,但 HQL 被设计成面向对象的语言,能够理解诸如继承、多态和关联等概念。这种特性使得 HQL 成为了在 Hibernate 中执行数据...
在这种情况下,我们需要使用 Hibernate 的 HQL 语言来编写查询语句,以便检索和操作数据。 在这个例子中,我们有三个实体类:Menu、Privilege 和中间表 menu_privilege。Menu 实体类中有一个 privileges 列表字段,...
【Hibernate HQL 深度历险】是一个关于掌握Hibernate查询语言高级特性的技术主题。Hibernate Query Language(HQL)是Hibernate框架提供的面向对象的查询语言,它与SQL类似但针对对象模型,允许开发者直接查询对象而...
在Hibernate中,我们可以使用HQL(Hibernate Query Language)或者Criteria API来进行关联查询。HQL是面向对象的查询语言,它允许我们根据对象的关系来编写查询语句,例如: ```sql from User u where u.orders....
6. **连接查询**:通过JOIN关键字,可以处理多表关联查询,包括内连接(INNER JOIN)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)和全连接(FULL JOIN)。 7. **子查询**:在SELECT或WHERE子句中使用子查询,提供更灵活的...