加载中…
个人资料
JAVA狼
JAVA狼
  • 博客等级:
  • 博客积分:0
  • 博客访问:22,239
  • 关注人气:35
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

Hibernate对多表关联查询之二

(2006-06-26 20:44:04)
分类: java技术

 

Hibernate对多表关联查询

作者:杨晓

 

三、  Hibernate 进行多表关联查询

Hibernate对多个表进行查询时,查询结果是多个表的笛卡尔积,或者称为“交叉”连接。 例如:
from Student, Book
from Student as stu, Book as boo
from Student stu, Book boo

注意:让查询中的StudentBook均是表studentbook对应的类名,它的名字一定要和类的名字相同,包括字母的大小写。别名应该服从首字母小写的规则是一个好习惯,这和Java对局部变量的命名规范是一致的。

 

下面列举一个完整的例子来说明Hibernate对多个表进行关联查询(其中粗体是我们要特别注意的地方,相应表tBookInfoBookSelection的结构和其对应的hbm.xmlclass文件就不一一列举了,有需要详细了解的朋友,请联系我):

 

        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());

        }

 

关于作者:
杨晓,计算机硕士,曾在NEC、Softbrain 担任java开发工作。
博客:
http://blog.sina.com.cn/u/1237288325

 

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有