转自:http://www.blogjava.net/fuhoujun/archive/2009/01/06/232230.html
HQL多对多的查询语句
一个老师教许多学生,一个学生被许多老师教,一个学生有好多书,同一种书被许多同学拥有.
要查询教拥有书"a"的学生的老师!
Hql语句:
SELECT t FROM Teacher t join t.students s join s.books b where b.name = 'a'
解释:t.students s中s并不是集合的意思,而是t的students对象的表别名,join t.students s这个hql,hibernate会翻译成两个表的内连接关系
错误写法:
SELECT t FROM teacher t where t.students.books.name = 'a'
其实道理是很显然的,t.students是一个Set,那么这个Set怎么可能有books这样的属性呢?同理books.name也不对,所以使用表间连接并给出别名t.students s,此时的对象s才有books属性,所以可以写s.books b,最后使用b.name限制查询b.name = 'a'.
另外一种写法:
SELECT t FROM Teacher t,Student s,Book b where s.id in elements(t.students) and b.id in elements(s.books)
这种方法没有出错!不过这种方式要用子查询!
分享到:
相关推荐
hql语句大全hql语句大全hql语句大全hql语句大全hql语句大全hql语句大全hql语句大全hql语句大全hql语句大全hql语句大全hql语句大全hql语句大全hql语句大全hql语句大全hql语句大全hql语句大全hql语句大全
HQL语句大全HQL语句大全HQL语句大全HQL语句大全HQL语句大全
HQL语句 HQL语句 HQL语句 HQL语句 HQL语句
NULL 博文链接:https://tanjunxiaoge.iteye.com/blog/1750865
Hibernate 多对多HQL语句写法
hql多表查询hql多表查询hql多表查询
HQL语句查询
非常详细直接实用的HQL语句的功能介绍 看过的人保准都说好
HQL语句大全
hibernate-HQL语句大全
HQL语句的语法,很基础
hql语句大全
hibernate 中HQL语句查询学习笔记
下面介绍HQL语句的语法 1.from子句 2.select子句 3.聚集函数 4.多态查询 5.where子句 6.表达式 7.order by子句 8.group by子句 9.子查询语句 10.fetch关键字 11.命名查询
常见HQL语句的示例包括输出结果,以及语句的分析总结
hql语句常规 方法 使用 了解hql语句
hql精点查询语句.doc
HQL语句的用法,关于HQL与SQL语句的比较及其用法。
整理的hql语句 id生成策略 集合传参,传参方式等 应有尽有
Hibernate中HQL语句的使用 ...HQL语句可以用于各种查询场景,包括简单属性查询、多个属性的查询、使用别名、实体对象查询、外置命名查询、查询过滤器、分页查询、对象导航查询、连接查询和统计查询等。