首页 新闻 会员 周边

hibernate 多表连接查询 只能读出一个表的数据 另两个表的列得不到值

0
悬赏园豆:50 [已关闭问题] 关闭于 2022-06-15 09:01

现在有三个表,用户表(uno,uname),图书表(bno,bname),评论表(brno,uno,bno,review),现在要从数据库中读出用户表的用户名,图书表的书名和评论表的评论内容

这是hql语句部分
Session session=HibernateSessionFactory.getSessionFactory().getCurrentSession();
tc = session.beginTransaction();
hql=" select br.brno,br.bno,br.uno,u.uname,br.brtime,br.review,b.bname" +
" from BookReview br," +
"Book b ,Uuser u where u.uno=br.uno and br.bno=b.bno";
Query query = session.createSQLQuery(hql).addEntity(BookReview.class);
bookreview = (List<BookReview>)query.list();
tc.commit();
这个select语句在SQL Server里可以执行
但是程序里,最后显示结果的时候只有bookreview(评论表)里的列有值,用户名和书名都没有值(应该是有这两个列存在,因为用for循环显示时,可以输出.getUname(),但是没有值)
我有在bookreview的类里创建对应参数的构造函数
public BookReview(int brno,String bno,int uno, String uname,Timestamp brtime,
String review,String bname) {
super(brno, bno, uno,uname,brtime, review,bname);
}

也配置了.hbm.xml

<many-to-one name="book" class="com.Literary.chen.hibernate.Book" fetch="select">
<column name="bno" not-null="true" />
</many-to-one>
<many-to-one name="uuser" class="com.Literary.chen.hibernate.Uuser" fetch="select">
<column name="uno" not-null="true" />
</many-to-one>

现在想请教一下是哪里的问题,拜谢

暖心系的主页 暖心系 | 初学一级 | 园豆:48
提问于:2019-05-25 14:41
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册