hibernate left join问题,比较急!!

want1615 2012-04-01 02:34:21
是这样的一个问题,
有两张表A,B。
A表字段:
id
name1
number1
sex
B表字段:
id
name2
number2
age
sal
这里字段我是随便取的。
现在我要做这样一个操作:
A表与B表外连接,根据name1=name2和number1=number2两个条件取出name1,sex,age,sal四个字段。
因为我不想用VO,所以在A的实体中加了两个@Transient注解的age,sal,在A实体类中写了对应的构造函数,我写的hql为
select new 包名(a.name1,a.sex,b.age,b.sal) from A a left join B b on name1=name2 and number1=number2;
但是报错了,是因为hibernate hql是不支持left on 的写法的。
百度了一下,说要在配置文件里配set什么的,因为我用的都是注解,所以不可能去在配置文件里去配什么,
这个问题该怎么解决,请各位牛人悉心给予解答。O(∩_∩)O谢谢。。。。
回答问题前最好可以试一下,我都试了很多种写法,都怕了都。。。。
...全文
251 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
蛋黄车 2012-04-06
  • 打赏
  • 举报
回复
http://kakarot-java.iteye.com/blog/479775

想要用HQL,就要遵守人家的规范性的东西
宏Lee 2012-04-06
  • 打赏
  • 举报
回复
你就用sql一样,hql能完成的事sql一定能完成,sql能完成hql不一定行
want1615 2012-04-06
  • 打赏
  • 举报
回复
业务复杂了就不想做关联了,删除干嘛的容易出问题。我现在做的这个项目就尽20张表,关联容易出问题。
这个问题现在已经解决了,用了个@Formula做了子查询。
nicewonders 2012-04-06
  • 打赏
  • 举报
回复
写manytoone注解的时候加上fetch="join"
结贴是美德 2012-04-01
  • 打赏
  • 举报
回复
用注解也呢过设置关联关系啊,@OneToMany和@ManyToOne呀,你这得在子表写联合外键啊,主表中得加个联合unique。设置好了就可以写hql了:
from A left join A.B

81,090

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧