Hibernate一对多对的查询HQL问题

问题描述

今天做项目 碰到一个问题:现有 Order Ticket Jingdian 三个实体类 ,分别对应 t_order,t_ticket,t_jingdian三张表类Order里面有ticketId类Ticket里面有List<Jingdian>类Jingdian里面有 memo请问一下,通过 Jingdian里面的 memo 属性来查询订单的HQL语句应该怎么写?因为Ticket里面没有memo字段属性,还请知道的大神指点一二。

解决方案

这样行不?select order.*,ticket.*,jingdian.* from t_order order left join t_ticket ticket on order.ticket_id = ticket.ticket_id left join t_jingdian on jingdian.jingdian_id = ticket.jingdian_id where jingdian.memo = ?
解决方案二:
第一步select j.ticketid from jingdian j where j.memo=?第二部select o from order o where o.ticketid=第一步的结果
解决方案三:
类Ticket里面有List<Jingdian> 类Jingdian里面有 memo 有关系吗?
解决方案四:
差不多这个样子select o from Order o, Ticket t, Jingdian j where o.ticketId=t.id and j.ticketId=t.id and j.memo=?

时间: 2024-08-22 14:33:52

Hibernate一对多对的查询HQL问题的相关文章

关于hibernate 一对多级联查询的问题,生成的sql报语法错误

问题描述 描述:主要是实体一对多的关系,不希望懒加载,需要急加载.配置完后,查询时报sql语法错误,将sql语句拷到mysql中执行,把{}去除,花括号其实就是映射的数据库字段,执行成功.仔细看了一下错误,象是hibernate执行时没有把花括号{}给替换成数据库字段名称,直接带着花括号查询了,当然会报错,为什么会出现这种问题,没有找到原因.有没有朋友知道的?po类:一对多的关系,Jpa配置如下(单向关联) @SuppressWarnings("serial")@Entity@Tabl

hql 多对一查询语句如何写

问题描述 hql 多对一查询语句如何写 public A { private long id; private String a; private B b; } public B{ private long id; private String b; } 现在我知道了B类的id和A类的变量a,要查出整个A类,hql语句怎么写啊,在线急等,求大神指点 解决方案 hibernate查询语句--HQLhibernate查询语句--HQLhibernate查询语句--HQL 解决方案二: 是B类的所有I

hibernate一对多查询问题

问题描述 hibernate一对多查询问题 我想用hibernate查询得到的list集合转化为json后是这种效果[{"分类id":"1","商品":[{"分类id":"1","name":".商品1"},{"分类id":"1","name":"商品2"}]},{"分类id&q

hibernate的多对一,一对多,多对多,一对一怎么理解?

问题描述 hibernate的多对一,一对多,多对多,一对一怎么理解? 是多个字段对应一个字段,一个字段对应多个字段,多个字段对应多个字段?还是多个对象对应一个对象,一个对象对应多个对象,多个对象对应多个对象. 在一对一的表中为什么是有外键的要设计成many-to-one?无外键的设计成non-to-one? 解决方案 就是字面意思,一个key可以对应另一张表的多个字段,就好像身份对应城市一样

全面解析Hibernate关联操作、查询操作、高级特性、并发处理机制_java

本文所需的数据库初始文件,Hibernate常用操作的完整示例代码(包含所有Hibernate操作所需jar文件)提供下载学习:http://download.csdn.net/detail/daijin888888/9551724 1.Hibernate关联映射     1)什么是关联映射?         如果表之间具有关联关系,Hibernate允许我们在hbm.xml中描述他们的关联关系,然后在我们操作其中一张表时,自动的根据这种关系操作到另外的关系表,那么这种关联关系的设置,我们称之为

Hibernate一对多(单向)

[标题]:Hibernate一对多(单向) [时间]:2009-6-12 [摘要]:单向一对多关联只需要在"一方"进行配置即可,"多方"无需额外配置. [关键字]:外键,inverse,Hibernate,Set,一对多,单向,ORM,mapping,关系数据库,映射 [环境]:MyEclipse7 , JDK6,Hibernate3.2,Tomcat6,MySQL 5.1.34-community [作者]:Winty (wintys@gmail.com) htt

NHibernate之旅(10):探索父子(一对多)关联查询

本节内容 关联查询引入 一对多关联查询 1.原生SQL关联查询 2.HQL关联查询 3.Criteria API关联查询 结语 关联查询引入 在NHibernate中提供了三种查询方式给我们选择:NHibernate查询语言(HQL,NHibernate Query Language).条件查询(Criteria API,Query By Example(QBE)是Criteria API的一种特殊情况).原生SQL(Literal SQL,T-SQL.PL/SQL).这一节分别使用这三种方式来

关于hibernate 一对多插入数据的问题

问题描述 关于hibernate 一对多插入数据的问题 现在出现了一个问题, 主表和副表通过1对多的关系关联配置,所有的配置都完成了. 在做关联处理时,副表的查询是成功的,但是在对副表进行插入数据的处理时, 数据不能被插入,从打印的日志来看,副表的insert语句都没有被执行, 请问有没有人遇到过这种问题?是什么原因造成的?谢谢 解决方案 Hibernate一对多增删改查 解决方案二: 估计是hibernate配置时cascade的问题,如果是注解的看http://blog.csdn.net/z

hibernate的多条件查询——Criteria Query的应用

  查询数据时,人们往往需要设置查询条件.在SQL或HQL语句中,查询条件常常放在where子句中.此外,Hibernate还支持Criteria查询(Criteria Query),这种查询方式把查询条件封装为一个Criteria对象.在实际应用中,使用Session的createCriteria()方法构建一个org.hibernate.Criteria实例,然后把具体的查询条件通过Criteria的add()方法加入到Criteria实例中.这样,程序员可以不使用SQL甚至HQL的情况下进