现在有三个表,用户表(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>
现在想请教一下是哪里的问题,拜谢