hibernate如何实现复杂的sql语句

zhouyu2005 2009-12-17 04:09:11
如果是比较复杂的sql语句,如何用hibernate实现呢
...全文
537 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
su2zhen 2009-12-18
  • 打赏
  • 举报
回复
给你个网址,过去看看吧,很全http://www.verycd.com/topics/93279/
gordonkkk 2009-12-18
  • 打赏
  • 举报
回复
如果是抓取具体数据的sql,无论多复杂的,hql也能神奇的化繁为简。
如果是做类似报表的,要group by rollup之类的,hql无能为力,必须使用原生sql。
LarryZD 2009-12-18
  • 打赏
  • 举报
回复
有些时候是不是要考虑下 你当前项目的架构 并不是怎么简单化就怎么去做吧 如果你单纯的写SQL 语句那么肯定怎么简单怎么做了
crazylaa 2009-12-18
  • 打赏
  • 举报
回复
直接jdbc吧。多表联查不是hib的强项。
pasterzhang 2009-12-17
  • 打赏
  • 举报
回复
O/P M的目的就是为了用类来操作关系型数据库 所以HQL应该是一个很不错的方法
怎么用得看具体的情况 关系能复杂到哪去
blliy117 2009-12-17
  • 打赏
  • 举报
回复
如果很长的很复杂的,我不建议用hibernate,这个对性能有影响,而且不小!
fbysss 2009-12-17
  • 打赏
  • 举报
回复
可以写namedquery。里面甚至可以写原生SQL.但缺点是没有提供分页方法。
可以采用session.createSQLQuery,还可以考虑结合ibatis的部分功能,或者是自己写一个类似namedQuery的解析器。
道光2008 2009-12-17
  • 打赏
  • 举报
回复
[Quote=引用楼主 zhouyu2005 的回复:]
如果是比较复杂的sql语句,如何用hibernate实现呢
[/Quote]
怎么过复杂发,要是用sql能解决的问题,90%用hql都可以解决。实在不行就用ibatis嘛,直接写sql执行
SambaGao 2009-12-17
  • 打赏
  • 举报
回复
如果过于复杂。并且比较多。多么建议写一个过程,直接写在数据库里。这
样比较快。
ycscsjj 2009-12-17
  • 打赏
  • 举报
回复
写成普通的sql语句 不过表的字段要与属性对应
select u。id ,u。name,j。jobName from User u,Job j where u。id=j。uid
zl3450341 2009-12-17
  • 打赏
  • 举报
回复
你不会改hql的话
直接写一个sql语句 在数据库里面测试好
用hibernate的原生sql
hibernateSession.createSQLQuery()
humcomm 2009-12-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 dinghun8leech 的回复:]
如果是表与表之间关系复杂,那么hql完全可以通过面向pojo的方式查询。
[/Quote]
推荐使用
lei01234567890 2009-12-17
  • 打赏
  • 举报
回复
新手过来学习
dinghun8leech 2009-12-17
  • 打赏
  • 举报
回复
如果是表与表之间关系复杂,那么hql完全可以通过面向pojo的方式查询。
如果要使用一些sql函数,那么hql大多有类似函数可供调用。
如果是更复杂的语句,那么可以选择通过hibernate sessionfactoy实例获得connection实例,以非面向对象的方式操作数据库,拿到了connection基本就可以像jdbc那样为所欲为的使用,当然这是hibernate不推荐的。
yukang_ky 2009-12-17
  • 打赏
  • 举报
回复
String sql="是sql语句,不是hql语句";
SQLQuery query = session.createSQLQuery(sql);//原生sql语句

67,513

社区成员

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

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