刚刚开始使用hql,有点不熟悉,再加上之前使用sql的习惯,在使用hql的left join的时候陷入的牛角尖
假设存在两个实体A和B,A has a B
A的字段如下
aid
aname
bid
B的字段如下
bid
bname
现在需要使用left join查询数据,sql的写法如下
sql : select * from A a left join B b on a.bid = b.bid
但hql是不存在on关键字的,如果直接使用改语句是会报left join异常
hql的写法如下:
hql: select * from A a left join B b
大家注意到,hql是不需要on 之后的条件的,因为当你在实体A里面设置好了oneToOne的对应关系,
hibernate会自动把外键关联,不需要自己写条件
如果大家想在放置查询条件,写法如下:
hql: select * from A a left join B b with b.name = ‘张三’