帮写一个Hibernate查询语句

cattycat 2009-12-29 02:01:19
我刚开始接触Hibernate,不是特别熟,下面的JDBC的SQL查询怎么改成hibernate的?别人已经把state表和csiscode表映射成对象,配置文件人家也写好了,我目前就是用Hibernate查询一下。


select titemname,count(tmax_num)as mnum,count(treal_num)as rnm
from state join csiscode cc on cc.tcode=tduty and cc.tcodetype='80'
where tduty!='' group by tduty, cc.titemname order by tduty
...全文
132 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
bingliang008 2009-12-30
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xxynew 的回复:]
hibernate的inner join 要在配置文件里配.
[/Quote]是这样的,需要在影射文件里配置
xuyang840117 2009-12-30
  • 打赏
  • 举报
回复


select cc.titemname,count(State.tmax_num)as mnum,count(State.treal_num)as rnm
from State , csiscode cc where cc.tcode=tduty and cc.tcodetype='80' and
tduty!='' group by tduty, cc.titemname order by tduty
dongyangmoney 2009-12-30
  • 打赏
  • 举报
回复
自己写语句
cattycat 2009-12-30
  • 打赏
  • 举报
回复

select cc.titemname,count(State.tmax_num)as mnum,count(State.treal_num)as rnm
from State , csiscode cc where cc.tcode=tduty and cc.tcodetype='80' and
tduty!='' group by tduty, cc.titemname order by tduty

我改成这个样子,没有用原来的inner join,把表名替换成类名,执行提示错误:
, expected in SELECT
说是缺少一个 "," ,我实在看不出来有这个错误啊。
cattycat 2009-12-30
  • 打赏
  • 举报
回复
select cc.titemname,count(State.tmax_num)as mnum,count(State.treal_num)as rnm 
from State , Csiscode cc where cc.tcode=tduty and cc.tcodetype='80' and
tduty!='' group by State.tduty, cc.titemname order by State.tduty

大家再帮我看看,我上面的代码是HQL的,数据库表名和字段名都替换成对应的类名和属性了。
我试了好几遍不行,如果没有count语句能正确查询,有count语句,就会报错:
, expected in SELECT
不知道是怎么回事,谢谢大家了。
yangchao0618 2009-12-29
  • 打赏
  • 举报
回复
hibernate 里面也可以执行平常的sql语句的》》
只是返回的是对像那样而已
cattycat 2009-12-29
  • 打赏
  • 举报
回复
我的createSQLQuery()怎么是三个函数,原型
createSQLQuery(String arg,String arg,Class arg),
第二个和第三个参数也可以是数组。
这个函数怎么用呢,我查了有的createSQLQuery()函数只需要一个参数,就是查询的sql,我的Hibernate是net.sf.hibernate,看来与这个有关系了。
Confidence_1987 2009-12-29
  • 打赏
  • 举报
回复
用关联撒,一下就搞定了
cw6797 2009-12-29
  • 打赏
  • 举报
回复
表名改成类名 不要用inner join 使用where 联接
xuyang840117 2009-12-29
  • 打赏
  • 举报
回复

select titemname,count(tmax_num)as mnum,count(treal_num)as rnm
from state , csiscode cc where cc.tcode=tduty and cc.tcodetype='80' and
tduty!='' group by tduty, cc.titemname order by tduty
haobaofufob 2009-12-29
  • 打赏
  • 举报
回复
遇到比较复杂的查询建议使用原生态的sql查询createSQLQuery(),写法和你在数据库中的sql一样,返回的list的每个元素是个object数组
cattycat 2009-12-29
  • 打赏
  • 举报
回复
createSQLQuery();
这个的sql查询语句和jdbc的语法可以一样吗,为什么我的提示unexpected token: join错误。
老张-AI 2009-12-29
  • 打赏
  • 举报
回复
hibernateSession.createSQLQuery();
用hibernate的原生sql吧
可以执行sql语句
xxynew 2009-12-29
  • 打赏
  • 举报
回复
hibernate的inner join 要在配置文件里配.
cattycat 2009-12-29
  • 打赏
  • 举报
回复
我把表名改成类名还是不行,貌似HQL不支持inner join?
luffyke 2009-12-29
  • 打赏
  • 举报
回复
把表明改为类名!!!

51,396

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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