帮忙写条HQL语句

良言相告 2007-06-24 03:55:23
我把需求简化地说一下:

两张表
Forum,字段id(int),messages(Set)
Message 字段id(int),forum(Forum)

要求用一句hql语句查出(三个部分):

Forum,该Forum的最后一条Message(按Message的ID排序),及属于该Forum的Message数量
...全文
340 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
良言相告 2007-06-30
  • 打赏
  • 举报
回复
嗯,成功了
要用到子查询

select f,m,size(f.messages)
from Forum as f,Message as m
where f=m.forum
and
(m.id >= all(select m.id from m where m.forum=f))
group by f
良言相告 2007-06-30
  • 打赏
  • 举报
回复
嗯,应该说是两个类,属性后面括号代表类型

Forum,两个属性id(int),messages(Set),可以看成某个留言板

Message,两个属性id(int),forum(Forum),可以看成留言板内的一条留言

两个就是简单的一(Forum)对多(Message)关系

配置文件就不帖出来了,现在就是需要一条HQL,该语句返回三个部分
Forum信息,该留言板的最新信息,以及该留言板的所有留言总数
类似于:
select f,m,size(f.messages)
from Forum f
......
后面的条件我不会了
peacenik 2007-06-29
  • 打赏
  • 举报
回复
你把2个表的所以字段,含义说清楚,问题都没看懂....
良言相告 2007-06-29
  • 打赏
  • 举报
回复
还是再顶顶
良言相告 2007-06-28
  • 打赏
  • 举报
回复
还是没有人。。。
良言相告 2007-06-28
  • 打赏
  • 举报
回复
嗯,期待高手吧
不过先把这东西顶高一点
tangqiuzheng 2007-06-26
  • 打赏
  • 举报
回复
Forum,字段id(int),messages(Set)
Message 字段id(int),forum(Forum)

要求用一句hql语句查出(三个部分):

Forum,该Forum的最后一条Message(按Message的ID排序),及属于该Forum的Message数量
-----------
"select m.forum, max(f.id), count(f.messages) from Forum as f, Message as m where f.id=m.id group by m.forum"

然后,再用f.id一条条去读取message算了.
汗啊,更好的语句应该有,我也学习等高手吧.

良言相告 2007-06-26
  • 打赏
  • 举报
回复
当然可以呀

比如,下面这个,是Hibernate3.04中文文档里的一个例子,我在项目里也多处用到了这样的东西


查询语句可以返回多个对象和(或)属性,存放在 Object[]队列中,

select max(bodyWeight) as max, min(bodyWeight) as min, count(*) as n
from Cat cat

它返回的是List,里面每一项是Object[],当然,上面这个例子只是返回一行的
如果有多行,一样可以这样
double22822 2007-06-26
  • 打赏
  • 举报
回复
我也晕,sql语句是不是以记录的形式返回的啊?那么你要的东西是不是能以一条记录的形式返回啊?不知道你的 Forum 是什么东西?

帮顶!
良言相告 2007-06-26
  • 打赏
  • 举报
回复
晕,没人回,大家帮帮忙吧
良言相告 2007-06-24
  • 打赏
  • 举报
回复
忘了说了
Forum对Message:一对多
我想二者间的一对多关系应该还是比较明显的

67,513

社区成员

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

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