Hibernate中session.createQuery方法的使用问题

fatso1984 2009-05-16 09:57:40
假设有如下sql代码
select * from tb_brand as a inner join (select spid,sum(sl) as sl,sum(je) as je from tb_sell where xsdate between '2003-01-01' and 2009-01-01' group by spid ) as b on a.id=b.spid order by je desc
在用Connection中执行没问题.
我想在Hibernate中利用session.createQuery这个方法来执行这条sql语句时候出现了问题,提示错误是 没有设置方言
可是我在配置文件中已经设置好了,其他的方法执行也好使,唯独这个不行,我又写了一个测试的语句
select * from tb_brand 这个用session.createQuery方法就可以顺利执行.
找了一些资料session.createQuery这个方法的参数必须是原生的sql语句,起初我以为我的sql编写有问题,但是我在查询分析器中测试了,一切正常,就是不知道为什么出错,请高手指教一下,谢谢
...全文
927 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
fatso1984 2009-05-18
  • 打赏
  • 举报
回复
自己顶一下
fatso1984 2009-05-17
  • 打赏
  • 举报
回复
可能是我没说明白,我已经设置了方言了,调用createSQLQuery提示我没有设置方言.
我别的Hibernate方法都好使~~
blazingfire 2009-05-16
  • 打赏
  • 举报
回复
用createSQLQuery,
方言在hibernate.cfg.xml里设置

String sql = "select * from tb_brand as a inner join (select spid,sum(sl) as sl,sum(je) as je from tb_sell where xsdate between '2003-01-01' and 2009-01-01' group by spid ) as b on a.id=b.spid order by je desc ";
SQLQuery sqlQuery = session.createSQLQuery(sql);
List list = sqlQuery.list();

fatso1984 2009-05-16
  • 打赏
  • 举报
回复
我用的就是sql查询啊,上述的sql语句没有用hql,只是用了session.createSqlQuery这个方法,但是出错
emon123 2009-05-16
  • 打赏
  • 举报
回复
估计是你的HQL有问题,那你就使用SQL查询试试,session.createSqlQuery,后面是你的sql语句。

67,513

社区成员

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

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