Hibernate 进行多表关联查询

 

Hibernate对多个表进行查询时,查询结果是多个表的笛卡尔积,
或者称为“交叉”连接。 例如:from Student, Book from Student as stu, Book as boo from
Student stu, Book boo注意:让查询中的Student和Book均是表student和book对应的类名,它的
名字一定要和类的名字相同,包括字母的大小写。别名应该服从首字母小写的规则是一个好习惯,
这和Java对局部变量的命名规范是一致的。
例如:
String sTest = "from tBookInfo book, BookSelection sel where book.id = sel.bookId";
  Collection result = new ArrayList();
  Transaction tx = null;
  try {
   Session session = HibernateUtil.currentSession();
   tx = session.beginTransaction();
   Query query = session.createQuery(sql);
   result = query.list();
   tx.commit();
  } catch (Exception e) {
   throw e;
  } finally {
   HibernateUtil.closeSession();
  }
  ArrayList sList = (ArrayList) result;
  Iterator iterator1 = sList.iterator();
  while (iterator1.hasNext()) {
   Object[] o = (Object[]) iterator1.next();
   tBookInfo bookInfo = (tBookInfo) o[0];
   BookSelection bookSelect = (BookSelection) o[1];
   System.out.println(
"BookInfo-Title: " + bookInfo.getTitle());
   System.out.println(
"BookSelection-BookSelectionId: " + bookSelect.getId());
  }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值