Hibernate的join用习惯了sql的join功能的人恐怕面对使用hql写BMP的时候都会遇到象我一样的疑惑“咋就不能用ON了呢?”
偶然在晚上看到一个帖子,不知对否,权当参考吧。
内容如下:
1。如果没有在Hibernate配置里做关联,在Hql里面是不能用join的。 2。Hql里面的join是没有"ON" 子句的。 3。如果是inner join,Join的依据就是事先设计好关联 4。如果要用left join或right join,那么要采用referece的方式来写这个语句。 比如: FROM a LEFT JOIN a.b
这里一定要写成 "a.b" 5。有fetch的时候每条记录只有一个Object,那就是FROM那个表,所有其他表的数据都要通过referece来获取,没有fetch的时候返回的是一个Object[],每个表都是一个对象。 (right join 不能用 fetch) 。比如:FROM a LEFT JOIN FETCH a.b |
|