Hql 连接查询问题

longcrazy 2011-10-19 10:25:36
两表tb_user(userID,userName)
tb_topic (topicID,userid)

其中userid为外键
怎样写HQL得到(topicID,userName)
对应的实体类

Class TbTopic
{
private Integer topicID;
private TbUser tbUser;
}
Class TbUser{
private Integer userID;
private String userName;

}
...全文
256 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
oxcow 2011-10-24
  • 打赏
  • 举报
回复
[Quote=引用楼主 longcrazy 的回复:]
两表tb_user(userID,userName)
tb_topic (topicID,userid)

其中userid为外键
怎样写HQL得到(topicID,userName)
对应的实体类

Class TbTopic
{
private Integer topicID;
private TbUser tbUser;
}
Class TbUser{
priva……
[/Quote]

HQL:



Query query = session.createQuery(" from TbTopic as tp left outer join tp.tbUser as tu ");
List<Object[]> list = query.list();
for(Object[] objs : list){
for(Object obj : objs){
if(obj instanceof TbTopic ){
TbTopic simp = (TbTopic )obj;
System.out.println(simp.getTopicID());
}
if(obj instanceof TbUser){
TbUser us = (TbUser)obj;
System.out.println(us.getUserName());
}
}
}

凉岑玉 2011-10-23
  • 打赏
  • 举报
回复
不知道HQL是否支持嵌套查询哦?我去试试··
蓝黑十子星 2011-10-23
  • 打赏
  • 举报
回复
select t.topicID , t.tbUser.userName from TbTopic t
这样就行了
  • 打赏
  • 举报
回复
得到你的结果可以像3楼所说的办法
也可以不用hql="from xxxx"
用sql="select xxx from xxx"
但是不同的是
你要把原来代码里面用到的Query对象
换成SQLQuery来使用
postgrest 2011-10-20
  • 打赏
  • 举报
回复
把model改成list就可以了
postgrest 2011-10-20
  • 打赏
  • 举报
回复
STRING HQL = "from TbTopic as model where model.TbUser.topicID=? and model.TbUser.userName=?;
这是Hql语句的用法,根据实体对应的数据表查询。
如果在页面取值的话直接${model.TbUser.topicID},${model.TbUser.userName}
解未知数 2011-10-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 selly0919 的回复:]

select b.topicID,a.userName from tb_user a,tb_topic b where b.tbUser.userID=a.userID
[/Quote]

hibernate的list()方法, 将返回List<Object[]>
一行记录放到一个Object[]数组

Object[0] : topicID
Object[1] : userName
selly0919 2011-10-20
  • 打赏
  • 举报
回复
select b.topicID,a.userName from tb_user a,tb_topic b where b.tbUser.userID=a.userID

67,513

社区成员

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

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