`

Hibernate中的LEFT JOIN

阅读更多
public class Order {
   private Set<OrderProduct> orderProducts=new HashSet<OrderProduct>();     
}
public class OrderProduct {
   private Order order;// 订单
}

Query query1=session.createQuery("SELECT count(*),SUM(o.sum),op.product FROM Order o LEFT JOIN o.orderProducts op  WHERE op.product.id=18 GROUP BY op.product");

如上,首先,订单与订单产品之间是一对多关联关系,orderProduct是Order的一个属性,这样,表外连接时,就不再使用ON子句了。

而采用以下查询语句:
Query query1=session.createQuery("FROM Order o LEFT JOIN o.orderProducts op WHERE o.isReturn = 0 and o.isdel = 0 
");

查询的结果将为一个类型为数组的List,其中,第一个元素类型为Order,第二个元素为OrderProduct
分享到:
评论

相关推荐

    Hibernate表关系总结(一对一,多对一,多对多)

    在Java持久化框架Hibernate中,关系映射是数据库关系模型在对象模型中的体现,它允许我们将数据库的表间关系转换为对象间的关联。本文将深入探讨三种主要的关系映射类型:一对一(One-to-One)、多对一(Many-to-One...

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

    对于多表连接,Criteria API 可以通过 JoinType 类型的 JOIN 方法实现,如 INNER JOIN、LEFT JOIN 等。 **分页查询** 在大数据量的场景下,分页查询是必不可少的,它可以提高用户体验并减少服务器负载。Hibernate ...

    Hibernate-基础联表模板

    Hibernate提供了多种联表查询方式,如:`JOIN`, `LEFT JOIN`, `RIGHT JOIN`, `FULL JOIN`等,这些都可以通过HQL(Hibernate Query Language)或者Criteria API来实现。 4. **Hibernate的HQL查询** HQL是Hibernate...

    hibernateHQL关联查询

    - **左外连接(Left Outer Join)**:除了返回两个表中满足连接条件的记录外,还会返回左表中不满足连接条件但右表中不存在匹配项的记录。 - **右外连接(Right Outer Join)**:除了返回两个表中满足连接条件的...

    HQL Hibernate查询语言

    HQL(Hibernate Query Language)是 Hibernate 中的一种强大的查询语言,它看起来很像 SQL,但是不要被语法结构上的相似所迷惑,HQL 是非常有意识的被设计为完全面向对象的查询,它可以理解如继承、多态和关联之类的...

    Hibernate问题解决

    - **RIGHT JOIN:** 直接在HQL中使用`RIGHT JOIN`语法,但由于Hibernate不支持直接的`RIGHT JOIN`语法,可以使用`LEFT JOIN`加上额外的条件来模拟`RIGHT JOIN`的效果: ```java String hql = "FROM UserInfo u ...

    hibernate关联查询

    `JOIN`会返回两个表中存在匹配的所有记录,而`LEFT JOIN`会返回所有左侧表的记录,即使右侧表没有匹配的记录。 在HQL中,我们可以这样写: ```sql from User u join fetch u.orders ``` 这将执行一个内连接并立即...

    Hibernate 内连接和左外连接

    左外连接(LEFT OUTER JOIN)则返回第一个表的所有行,即使在第二个表中没有匹配的行。如果在第二个表中找不到匹配项,结果集中的对应列将填充NULL值。继续我们的例子,如果我们想获取所有员工的信息,包括他们所在...

    hibernate 中HQL语句查询学习笔记

    ### Hibernate中HQL语句查询学习笔记 #### HQL基础 **HQL**(Hibernate Query Language)是Hibernate框架推荐使用的查询语言,它提供了一种面向对象的方式来查询数据库,支持多种复杂的查询操作,如继承、多态及...

    hibernate的使用心得

    Hibernate支持多种连接类型,包括`inner join`(内连接)、`left outer join`(左外连接)、`right outer join`(右外连接)和`full join`(全连接)。`with`关键字用于提供额外的连接条件,类似于SQL中的`on`关键字...

    hsql查询语法

    HSQL支持的连接类型包括inner join、left outer join、right outer join和full join。例如: from Formula form full join form.parameter param 4. FETCH连接 HSQL还支持FETCH连接,用于将关联的对象或一组值的...

    传智播客_hibernate

    4. ** Criteria API的Join操作**: 支持多表查询,包括内连接(inner join)、左连接(left join)等。 5. **Criteria API的Projections**: 用于结果集的投影,例如获取平均值、计数等。 **四、事务管理** 1. **...

    hibernate视频

    - **连接查询**:INNER JOIN、LEFT JOIN等。 #### 4.2 Criteria API - **标准查询**:设置查询条件、排序等。 - **动态查询**:根据实际需求动态构建查询条件。 ### 五、性能优化 #### 5.1 缓存机制 - **一级缓存...

    hibernate面试题大全

    在Hibernate中,针对关联对象的检索,有三种主要的检索策略:立即检索(Eager Fetching)、延迟检索(Lazy Fetching)和迫切左外连接检索(Anxious Left Join Fetching)。下面将详细探讨这三种策略的特点。 #### 1. 立即...

    Hibernate Query Language

    - **关联与连接**:支持内连接(`inner join`)、外连接(`left outer join`, `right outer join`)、全连接(`full join`),用于处理实体之间的关联。 - **投影**:通过`select`子句选择返回的字段或元素。 - **...

    Hibernate HQL.doc

    Hibernate HQL,全称为Hibernate Query Language,是Hibernate框架中用于对象关系映射(ORM)的查询语言。HQL的设计目标是提供一种面向对象的查询方式,使得开发者能够以类和对象的角度来操作数据库,而不是直接使用...

    Hibernate映射树形结构

    在IT行业中,数据库管理和对象关系映射(ORM)框架是至关重要的组成部分,特别是对于Java开发者而言,Hibernate是一个广泛使用的ORM工具。本篇文章将深入探讨如何在Hibernate中映射树形结构,这是一种处理复杂数据...

    Hibernate_HQL大全

    在这个查询中,我们不仅检索了Cat实体,还通过LEFT JOIN FETCH子句同时加载了它们的mate和kittens。这种方式确保了即使mate或kittens为空,查询也能正确执行,同时避免了多次数据库访问,提高了查询效率。 #### 四...

    Hibernate-HQL语句多对多写法

    2. 在多对多关系的情况下,需要使用 left join 或 inner join 来连接实体类。 3. 使用 where 子句可以过滤出特定的数据。 4. 在 HQL 语句中,使用 join 子句可以连接多个实体类。 5. 在多对多关系的情况下,需要使用...

    hibernate查询详细代码讲解

    可以使用JOIN关键字进行连接查询,包括内连接(INNER JOIN)、外连接(LEFT JOIN, RIGHT JOIN, FULL JOIN)等。例如,如果我们有一个`Order`类与`User`类有关联,可以这样查询每个订单对应的用户: ```sql SELECT o...

Global site tag (gtag.js) - Google Analytics