日期:2014-05-19  浏览次数:20678 次

hql语句左外连接支持 where b.aId (+)= a.id 写法吗
SQL语句左外连接这样写不会报错,

但HQL语句报错了,不知道问题是不是处在这里
------最佳解决方案--------------------
(+)=这个是oracle特有的写法啊,用left outer join或者left join啊
------其他解决方案--------------------
where b.aId (+)= a.id 这个是oracle特有的,HQL不能用…
------其他解决方案--------------------
用 join的话 表之间关联关系 需要配 在 mapping里 
------其他解决方案--------------------
引用:
悲剧了,改成 from Aa a left join Bb b on b.aId = a.id 

还是报错


HQL带的连接语句只能是实体与该实体的属性 进行连接
其意义就是为了优化(通过延迟加载查询关联的属性实在太傻逼了..)
我知道的就这些 期待其他人补充 你也可以用SQL查询然后addEntity
------其他解决方案--------------------
当然不行了,这又不是H的
------其他解决方案--------------------
不要以为 HQL 是万能的,要 HQL 能跟 SQL 划等号的话,那就牛 B 了!
------其他解决方案--------------------
引用:
SQL语句左外连接这样写不会报错,

但HQL语句报错了,不知道问题是不是处在这里


+1
------其他解决方案--------------------
该回复于2011-03-22 16:01:50被版主删除
------其他解决方案--------------------
悲剧了,改成 from Aa a left join Bb b on b.aId = a.id 

还是报错 
------其他解决方案--------------------
 mapping里面如何配,能给个例子吗?
------其他解决方案--------------------
我也出现一个连接问题,现在不知道怎么解决,
select a.name,a.jobnum,a.password,b.name,a.id,a.status,a.role_id,c.rolename from (Teacher a a left outer join Department b on a.department_id=b.id )left outer join Role c on c.id=a.role_id where  a.status=1  order by a.id desc
Oracle 可以用,HQL居然报ERROR - line 1:82: unexpected token: (
   求解脱啊