复杂的sql语句在Hibernate中如何实现?

wmm1977 2005-07-21 08:28:27
像下面这样的查询在hibernate中如何实现?
select a.userId from ATable a where a.id=?
union
select b.userId from BTable b where b.id=?
...全文
288 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
clearwater21cn 2005-08-29
  • 打赏
  • 举报
回复
其实可以把sql写在xml的外边调用,改起来也方便。
hibernate参考手册里有
yuer2084 2005-07-26
  • 打赏
  • 举报
回复
写得查询语句首先要数据库支持才行,另外根据楼主的问题,复杂的查询语句可以在配置文件中(*.hbm.xml)配置好查询语句,用的时候使用findbynamequery就可以.不知道楼主问得是不是这个意思
Saro 2005-07-25
  • 打赏
  • 举报
回复
对于过于复杂的sql,或要求极高效率的查询,你应该使用jdbc或ibatis实现,如果你使用dao对hibernate进行了良好的封装,混用jdbc并不会让你的系统混乱的。
shoulders 2005-07-25
  • 打赏
  • 举报
回复
直接用jdbc实现吧。
zhuyanhua444 2005-07-25
  • 打赏
  • 举报
回复
回复人: wmm1977(吴明明) ( ) 信誉:100 2005-07-23 20:32:00 得分: 0


select ttp.sid,ttp.name,
tp.sid,tp.value from
(select * from task_template_property
where tas_sid=(select tas_sid from task where sid='1')) ttp
left join (select * from task_property where tas_sid='1')
tp on tp.tas_sid2=tp.sid
这样的SQL怎么翻译成HQL?


这个太复杂了吧!
GX198302 2005-07-24
  • 打赏
  • 举报
回复
用Hibernate有什么好的啊?
wmm1977 2005-07-24
  • 打赏
  • 举报
回复
其中tp与ttp是多对一的关系,与task也是多对一的关系,用HQL能实现吗?
wmm1977 2005-07-24
  • 打赏
  • 举报
回复
打错了,最后的条件应该是
on tp.tas_sid2=ttp.sid
tk1984 2005-07-24
  • 打赏
  • 举报
回复
Hibernate3.0好象查询可以直接在里面直接写SQL语句的!不用HQL也可以!
wmm1977 2005-07-23
  • 打赏
  • 举报
回复
select ttp.sid,ttp.name,
tp.sid,tp.value from
(select * from task_template_property
where tas_sid=(select tas_sid from task where sid='1')) ttp
left join (select * from task_property where tas_sid='1')
tp on tp.tas_sid2=tp.sid
这样的SQL怎么翻译成HQL?
usherlight 2005-07-22
  • 打赏
  • 举报
回复
Hibernate2明确不支持Union.
在Hibernate In Action说到过.
Hibernate3是否支持不得而知.
对于复杂的Sql直接用Session.getConnection
然后用JDBC的一套.
zjjsgwm 2005-07-22
  • 打赏
  • 举报
回复
应该是能直接在里面写SQL的。
比如"from ***"这些改成你的sql,试试...

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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