hibernate如何实现复杂的sql语句 如果是比较复杂的sql语句,如何用hibernate实现呢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 String sql="是sql语句,不是hql语句";SQLQuery query = session.createSQLQuery(sql);//原生sql语句 如果是表与表之间关系复杂,那么hql完全可以通过面向pojo的方式查询。如果要使用一些sql函数,那么hql大多有类似函数可供调用。如果是更复杂的语句,那么可以选择通过hibernate sessionfactoy实例获得connection实例,以非面向对象的方式操作数据库,拿到了connection基本就可以像jdbc那样为所欲为的使用,当然这是hibernate不推荐的。 你不会改hql的话直接写一个sql语句 在数据库里面测试好用hibernate的原生sqlhibernateSession.createSQLQuery() 写成普通的sql语句 不过表的字段要与属性对应 select u。id ,u。name,j。jobName from User u,Job j where u。id=j。uid 怎么过复杂发,要是用sql能解决的问题,90%用hql都可以解决。实在不行就用ibatis嘛,直接写sql执行 可以写namedquery。里面甚至可以写原生SQL.但缺点是没有提供分页方法。可以采用session.createSQLQuery,还可以考虑结合ibatis的部分功能,或者是自己写一个类似namedQuery的解析器。 如果很长的很复杂的,我不建议用hibernate,这个对性能有影响,而且不小! O/P M的目的就是为了用类来操作关系型数据库 所以HQL应该是一个很不错的方法怎么用得看具体的情况 关系能复杂到哪去 直接jdbc吧。多表联查不是hib的强项。 有些时候是不是要考虑下 你当前项目的架构 并不是怎么简单化就怎么去做吧 如果你单纯的写SQL 语句那么肯定怎么简单怎么做了 如果是抓取具体数据的sql,无论多复杂的,hql也能神奇的化繁为简。如果是做类似报表的,要group by rollup之类的,hql无能为力,必须使用原生sql。 给你个网址,过去看看吧,很全http://www.verycd.com/topics/93279/ 修改struts.xml无法生效? hibernate执行save方法时出现空指针 请教一个线程问题 ftp文件下载问题,雪地里跪求,在线等 大家好,请问一下公司目前用哪些ajax框架都些啊 HTTP状态404 - 无法找到Servlet action的错误 Hibernate4.3 注解出错!!求大神帮忙!! 数学分析 对 编程 的作用! Jackson能将这种json数组转换为对象吗? j2ee1.4的配置问题 在线等!使用common-fileupload上传文件,怎样获得随文件个数增加行的普通表单的值? 如何用java实现将页面指定的表格打印到word文档里,请指教呀!!!!
SQLQuery query = session.createSQLQuery(sql);//原生sql语句
如果要使用一些sql函数,那么hql大多有类似函数可供调用。
如果是更复杂的语句,那么可以选择通过hibernate sessionfactoy实例获得connection实例,以非面向对象的方式操作数据库,拿到了connection基本就可以像jdbc那样为所欲为的使用,当然这是hibernate不推荐的。
直接写一个sql语句 在数据库里面测试好
用hibernate的原生sql
hibernateSession.createSQLQuery()
select u。id ,u。name,j。jobName from User u,Job j where u。id=j。uid
可以采用session.createSQLQuery,还可以考虑结合ibatis的部分功能,或者是自己写一个类似namedQuery的解析器。
怎么用得看具体的情况 关系能复杂到哪去
如果是做类似报表的,要group by rollup之类的,hql无能为力,必须使用原生sql。