求几个方法 把sql语句转化成hibernate的操作

genguyige 2011-06-23 06:11:29
我写了一条sql语句 然后希望能转化成hibernate的操作直接返回对象

select * from message m where m.id not in (select distinct msg_id from replymsg) limit 0,2;

大致意思是这样的 得到数据库中没有被回复的信息 回复信息是放在replymsg这个类中的 信息是在message 中的 是一对多的关系 我要剔除被回复过了的的信息 并且还要指示语句从哪里开始返回多少条数据


怎么办 本人初学hibernate 很多都不懂
...全文
78 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
SQLQuery query = con.createSQLQuery("select * from testtable");
List products = query.list();
先顶一下!
xdrs1314 2011-06-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 genguyige 的回复:]

哎 其实很简单 hibernate也是支持sql查找的 突然就找到方法了

好吧 谁第一个回我 我就把分给谁
[/Quote]楼主我第三个回信息,应该也有吧!
shangqinbin 2011-06-23
  • 打赏
  • 举报
回复
学习了
wlf2131 2011-06-23
  • 打赏
  • 举报
回复
Query q = session.createQuery("select * from Message m where m.id not in (select distinct m.replymsg.msg_id from m.replymsg");
//下面两句 = limit 0,2
q.setFirstResult(0);
q.setMaxResults(2);
q.list();

我也是初学者上面的不一定对 我不知道你类是写成什么样的 上面的写法是我猜的你有个Message类 Message中有Replymsg的引用


也可以在hibernate中写本地的SQL(也就是 SQL 非 HQL)

SQLQuery sq = session.CreateSQLQuery("你写的那条SQL语句");


SQLQuery sq = session.CreateSQLQuery("select * from message m where m.id not in (select distinct msg_id from replymsg) limit 0,2");

sq.executeUpdate();



没有功劳也有苦劳 要个分哦
benfangdewoniu 2011-06-23
  • 打赏
  • 举报
回复
接分来了
genguyige 2011-06-23
  • 打赏
  • 举报
回复
哎 其实很简单 hibernate也是支持sql查找的 突然就找到方法了

好吧 谁第一个回我 我就把分给谁

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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