zoukankan      html  css  js  c++  java
  • Hibernate left join

    6.4.5  左外连接 

    左外连接(Left Outer Join)查询出左表对应的复合条件的所有记录,如查询李晓梅同学的选课信息。下面是类HQLLeftOuterJoinQuery的源代码。 

    其实关联查询 就是把 两个类的东西放到一个对象Object里 在去解析这个对象


    package hibernate.ch06;   
    import hibernate.HibernateSessionFactory;   
    import java.util.Iterator;   
    import java.util.List;   
    import org.hibernate.Query;   
    import org.hibernate.Session;   
    public class HQLLeftOuterJoinQuery {   
          public static void main(String[] args) {   
                Session session=HibernateSessionFactory.currentSession();   
                //HQL查询语句   
                String hql="from Student s left join s.course c where s.sname='李晓梅'";   
                Query query=session.createQuery(hql);         //创建查询   
                List list=query.list();                          //执行查询   
                Iterator it=list.iterator();   
                while(it.hasNext()){   
                      Object[] obj=(Object[])it.next();   
                      Student stu=(Student)obj[0];   
                      Course course=(Course)obj[1];   
                      System.out.println("*********学生信息及其选课信息******************");   
                      if(course!=null){   
                       System.out.println(stu.getSno()+"/t"+stu.getSname()+"/t"+   
                                    "课程:"+course.getCname());   
                       }else{   
                             System.out.println(stu.getSno()+"/t"+stu.getSname()+"/t");   
                       };   
                }   
          }   
    }   

    如果只用单表查询,只能从student表中查询出李晓梅的个人信息,而无法知道她的选课信息,因为选课信息存储在中间表sc中。HQL语句from Student s left join s.course c where s.sname='李晓梅'检索出了李晓梅的选课信息。 
         在HQL中使用left outer join关键字进行左外连接,outer关键字可以省略。 
         s.course是Student对象中的一个属性,用来存储Student对象的选课信息。在执行查询时,将根据Student.hbm.xml中的配置生成SQL语句,并检索信息。 
         查询的结果返回一个Object[]数组,数组的第0个元素是Student对象,第1个元素是与Object[0]中对应的学生所选课的Course对象。 


    版权声明:本文为博主原创文章,未经博主允许不得转载。

    today lazy . tomorrow die .
  • 相关阅读:
    python---django初步了解以及安装(包括Django网页首次无法访问的原因及解决方法,以及在linux服务器上布置无法启动的原因)
    pytho部分命令
    三层架构
    CardView
    SimpleTagImageView
    MultiCardMenu
    DashClock
    SuperToolTips
    MPAndroidChart
    SlideLayout
  • 原文地址:https://www.cnblogs.com/france/p/4808603.html
Copyright © 2011-2022 走看看