问个hibernate封装数据的问题

浪里花 2013-01-24 10:22:34
问题如下有2张表user(userid,name)topic(id title content,userid)
topic表中的userid引用user表中的userid,2张表不存在外键关系
我的想法是想通过连接查询2张表的内容使一条主题帖对应一个作者
页面结果输出像这种方式
id title username
11 你好 张三
12 今天吃了 李四
怎么通过hibernate查询的结果封装一下数据??直接通过一个循环就输出上面格式的数据
下面是2个实体类

public class User{
private int userId;
private String name;
//setter/getter略
}
public class Topic{
private int id;
private String title;
private String content;
private int userid;
//setter/getter略

}
...全文
191 8 点赞 打赏 收藏 举报
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
浪里花 2013-03-21
引用 2 楼 AA5279AA 的回复:
以下是借用csdn的博客文章: 由于项目需要,现在需要进行两张表连接查询,但前期hql已经写好,现在只是想在原有的基础之上再加上一个表的连接查询,本来如果用本地sql的方式很容易实现,但是原来已经用hql来写,并且程序本身在取得查询结果后如果查询出来是对象,对后面的操作很方便,故要在原有hql基础之后添加外连接,如下: if("0".equals(orgId)){ /……
如果查询出来不止有对象,还有连接表中的其他属性?难道用LIst<object[]>这种类似的,查询出来再封装一下?
  • 打赏
  • 举报
回复
浪里花 2013-02-01
引用 6 楼 lvzg_005 的回复:
借助hibernate的原生sql查询,对查询出来的数据可以再次封装。
我就是这么做的,直接用sql查出来再封装一下
  • 打赏
  • 举报
回复
浪里花 2013-01-24
引用 4 楼 gy127132060 的回复:
如果可以还是用外键吧,直接就可以得到数据了。。。。
项目说了的不用外键,说影响性能
  • 打赏
  • 举报
回复
香蕉猪 2013-01-24
如果可以还是用外键吧,直接就可以得到数据了。。。。
  • 打赏
  • 举报
回复
pei_zhenxi 2013-01-24
两个实体类里面都没有映射关联关系。。 个人建议就先分别查询出结果然后封装了。。 我也就路过,学习。。
  • 打赏
  • 举报
回复
失落夏天 2013-01-24
以下是借用csdn的博客文章: 由于项目需要,现在需要进行两张表连接查询,但前期hql已经写好,现在只是想在原有的基础之上再加上一个表的连接查询,本来如果用本地sql的方式很容易实现,但是原来已经用hql来写,并且程序本身在取得查询结果后如果查询出来是对象,对后面的操作很方便,故要在原有hql基础之后添加外连接,如下: if("0".equals(orgId)){ //顶级机构查询所有下级 hqlStrBuffer.append("select u from User u,Organization o where u.organization.orgId = o.orgId"); } 注意: 1、传统的方式是写成 from User ......这种形式,但此处要连接表,后面再加一张表,故写成: from User u ,Organization o 后面再加上两个表的连接条件 2、通过两个表查询,但是只是想要其中的一个对象,写法: select u from User u …… 至此,实现hql连接表查询
  • 打赏
  • 举报
回复
gqchen1981 2013-01-24
HQL: select A.id, A.title, (select B.name from user B where B.userid = A.userid) as name from topic A 这样不行吗?
  • 打赏
  • 举报
回复
lvzg_005 2013-01-24
借助hibernate的原生sql查询,对查询出来的数据可以再次封装。
  • 打赏
  • 举报
回复
相关推荐
发帖
Web 开发
加入

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2013-01-24 10:22
社区公告
暂无公告