0 0

关于HIBERNATE的HQL的写法5

订单对象(Order)和订单明细对象(OrderLineItem)是一对多的关系
其中订单明细对象(OrderLineItem)又引用商品对象(MenuItem)是多对一的关系
public class Order {
	private long id;
	private List<OrderLineItem> orderLineItems = new ArrayList<OrderLineItem>();
}

public class OrderLineItem {
	private MenuItem menuItem;
}



相应的hbm文件
<class name="Order" table="t_Order">
	<id name="id" type="long">
		<column name="id" sql-type="bigint(11)"></column>
		<generator class="native"></generator>
	</id>
	<list name="orderLineItems" table="orderLineItem" lazy="false" fetch="join">
		<key>
			<column name="order_id" sql-type="bigint(11)" not-null="true"></column>
		</key>
		<list-index>
			<column name="position_for_order" sql-type="int(4)" not-null="true"></column>
		</list-index>
		<composite-element class="OrderLineItem">
			<property name="itemName" type="string" column="itemName" length="100" not-null="true"/>
			<many-to-one name="menuItem" class="MenuItem" fetch="join">
				<column name="menuItem_id" sql-type="bigint(11)"></column>
			</many-to-one>
		</composite-element>
	</list>
</class>


我想写一句HQL,把orderItem和相应的menuItem都fetch出来,
我初步的想法是写以下的
select distinct o from Order o left join fetch o.orderLineItems oli left join fetch oli.menuItem

可是报错说fetch 后面的oli一定要出现在select子句里面
请问怎么样写HQL才能fetch出menuItem,谢谢
2012年8月07日 23:02

1个答案 按时间排序 按投票排序

0 0

select distinct o from Order o left
join fetch o.orderLineItems oli
where oli.属性

2012年8月08日 09:06

相关推荐

    Hibernate框架]Hql语句in中带参数的写法

    Hibernate框架Hql语句in中带参数的写法 Hibernate框架中,在使用HQL语句时,需要传递参数,而在HQL语句中使用in关键字时,需要特别注意参数的传递方式。在本文中,我们将讨论如何在HQL语句中使用in关键字带参数的...

    hibernate hql基本操作

    - **类名简化**:通常情况下无需使用类的全限定名,因为Hibernate默认开启了自动引入功能,简化后的写法为`from Cat`。 - **指定别名**:在大多数情况下,需要为查询的目标类指定一个别名,以便在后续查询中使用。...

    Hibernate-HQL语句多对多写法

    "Hibernate-HQL语句多对多写法" Hibernate 是一个流行的 Java 持久层框架,它提供了强大的对象关系映射(ORM)功能,使得开发者可以方便地与数据库交互。但是,在使用 Hibernate 时,我们经常会遇到多对多关系的...

    HibernateDAO的写法

    - 封装:DAO类应封装具体的SQL查询和HQL(Hibernate Query Language)语句,避免在业务层暴露这些细节。 - 单一职责:每个DAO类应只负责一种类型的数据操作,如用户DAO只处理用户相关的操作。 - 可复用:设计通用的...

    HQL Hibernate查询语言

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

    HQL的几钟常见写法

    ### HQL的几种常见写法 #### 概述 HQL(Hibernate Query Language)是Hibernate框架提供的一种查询语言,它支持面向对象的语法结构,并且能够很好地与Java对象模型进行映射。通过HQL,开发者可以更加灵活地操作...

    Hibernate查询语言(HQL) 语法参考

    Hibernate 查询语言(HQL)语法参考 HQL(Hibernate Query Language)是 Hibernate 框架中的一种强大的查询语言,它类似于 SQL 语句,但是它是完全面向对象的查询语言,可以理解继承、多态和关联等概念。 大小写...

    Hibernate_NSQL&HQL增删改操作

    ### Hibernate中的NSQL与HQL增删改操作详解 #### NSQL(Native SQL)与HQL(Hibernate Query Language) 在Hibernate框架中,进行数据库操作时,开发者可以选择使用两种不同的查询语言:NSQL(Native SQL)和HQL...

    hibernate配置文件以及类映射文件常用写法1

    本文将深入探讨Hibernate的配置文件和类映射文件的常用写法,帮助开发者更好地理解和应用Hibernate。 首先,我们来看`Hibernate.cfg.xml`配置文件,它是Hibernate应用的核心配置,包含了数据库连接、方言、自动建表...

    Hibernate3教程

    - HQL(Hibernate Query Language)是一种面向对象的查询语言,类似于SQL,但更加强调对象的概念。 - **3.3.2 查询** - 使用`select`语句从对象中查询数据。 - **3.3.3 条件查询** - 类似于SQL的WHERE子句,在HQL...

    Java相关课程系列笔记之十四Hibernate学习笔记

    - 动态查询:支持HQL(Hibernate Query Language),一种面向对象的查询语言,避免了硬编码SQL。 1.3 JDBC访问数据库的缺点 - 代码量大,重复性强,不易维护。 - 容易出现SQL注入等安全问题。 - 缺乏对对象模型的...

    HQL语句大全

    HQL(Hibernate Query Language)是一种面向对象的查询语言,由Hibernate框架提供。虽然它的语法结构与SQL类似,但HQL是专为面向对象查询设计的,能够很好地处理继承、多态性和关联等面向对象的概念。 #### 二、HQL...

    Java相关课程系列笔记之十四Hibernate学习笔记.doc

    - 支持复杂查询:支持HQL(Hibernate Query Language)和Criteria API,使得查询更灵活。 1.3 JDBC访问数据库的缺点 - 手动编写SQL语句,容易出错且不易维护。 - 数据库连接管理繁琐,需要手动关闭。 - 缺乏事务...

    2023年Java相关课程系列笔记之十四Hibernate学习笔记.doc

    Hibernate查询语言(HQL)是面向对象的查询语言,类似于SQL,但操作的是对象,而非表和列。 **三、数据映射类型** 3.1 映射类型的作用 映射类型定义了Java对象属性与数据库字段之间的对应关系,确保数据正确存储和...

    hibernate常用语句

    本篇将深入讲解在Hibernate中常用的查询语句,包括HQL(Hibernate Query Language)和QBC(Query By Criteria)两种方式。 1. HQL(Hibernate Query Language)是面向对象的查询语言,它允许开发者以类和属性的名字...

    hibernate映射配置文件不支持union联合查询[参照].pdf

    然而,Hibernate的HQL(Hibernate Query Language)或Criteria API并不直接支持复杂的子查询或联接查询,特别是涉及到多表联合查询的复杂子查询,如在示例中所示。 在给出的日志中,可以看到一个嵌套的子查询,尝试...

    SSH项目实例,有不同写法模板

    Hibernate提供了查询语言HQL,以及Criteria API,使得数据库查询更为便捷。此外,它的缓存机制能提高数据访问效率。 在这个SSH项目实例中,"templet"可能包含了一系列模板文件,如Struts的配置文件(struts.xml)、...

    Hibbernate应用练习

    6. **查询语言(HQL)**: Hibernate 查询语言(HQL)是 Hibernate 提供的面向对象的查询语言,类似于 SQL,但操作对象而非表。 **二、Hibernate 工作流程** 1. **初始化 Hibernate**: 加载配置文件,创建 ...

    中英文简历的写法,想写好简历就下吧。

    Hibernate支持多种数据库,具备强大的查询功能,包括HQL(Hibernate Query Language)和Criteria API。 Spring框架是Java企业级应用的核心框架,它提供了依赖注入(DI)和面向切面编程(AOP)等特性,简化了应用的...

Global site tag (gtag.js) - Google Analytics