<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    溫馨提示:您的每一次轉載,體現了我寫此文的意義!!!煩請您在轉載時注明出處http://m.tkk7.com/sxyx2008/謝謝合作!!!

    雪山飛鵠

    溫馨提示:您的每一次轉載,體現了我寫此文的意義!!!煩請您在轉載時注明出處http://m.tkk7.com/sxyx2008/謝謝合作!!!

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      215 Posts :: 1 Stories :: 674 Comments :: 0 Trackbacks
     

    Hibernate級聯查詢(HQL)

    拿雇員(Employee)與部門(Department)來舉例子說明

    1.1    數據庫模型

    1.1.1          Employee

    DROP TABLE IF EXISTS employee;

    CREATE TABLE employee (

     id int(11) NOT NULL auto_increment,

     empname varchar(255) default NULL,

     empage int(11) default NULL,

     context varchar(255) default NULL,

     deptid int(11) default NULL,

     PRIMARY KEY (id),

     KEY FK4722E6AEAD9148B6 (deptid)

    ) ENGINE=InnoDB DEFAULT CHARSET=gbk;

    1.1.2          Department

    DROP TABLE IF EXISTS department;

    CREATE TABLE department (

     id int(11) NOT NULL auto_increment,

     deptname varchar(255) default NULL,

     PRIMARY KEY (id)

    ) ENGINE=InnoDB DEFAULT CHARSET=gbk;

    1.2    Java

    publicclass Employee

    {

        private Integer id;

        private String empname;

        private Integer empage;

        private String context;

        private Integer deptid;

        private Department department=new Department();

          //此處省略set()get()方法

    }

    publicclass Department

    {

        private Integer id;

        private String deptname;

        private Set<Employee> employeeSet=new HashSet<Employee>();

    //此處省略set()get()方法

    }

    1.3    映射文件

    <hibernate-mapping package="com.dl.bean">

        <class name="Employee" table="employee">

             <id name="id" >

                 <generator class="native"/>

             </id>

             <property name="empname"/>

             <property name="empage"/>

             <property name="context" />

             <property name="deptid" insert="false" update="false"/>

             <many-to-one name="department" column="deptid" cascade="all" class="Department" />

        </class>

        </hibernate-mapping>

    <hibernate-mapping package="com.dl.bean">

        <class name="Department" table="department">

             <id name="id" >

                 <generator class="native"/>

             </id>

             <property name="deptname" />

                 <set name="employeeSet">

                     <key column="deptid"></key>

                     <one-to-many class="Employee"/>

                 </set>

        </class>

        </hibernate-mapping>

    1.4    在寫Hibernate級聯查詢的HQL語句時,與傳統的JDBC方式有著本質的區別

    1.4.1          JDBC級聯寫法

    SELECT * FROM employee INNER JOIN department ON employee.deptid= department.id

    1.4.2          HQL級聯寫法

    select

    employee.id,

    employee.empname,

    employee.empage,

    employee.context,

    employee.department.deptname

    from

    Employee employee

    inner join employee.department (此處與前文中Employee類中的屬性名一致)

    order by employee.id desc

    注意紅色字體部分,在傳統的SQL語句中inner join后面跟級聯的表,但在HQLinner join后面跟能反映出級聯關系的字段屬性(pojo中的名字必須高度保持一致),當存在級聯時,Hibernate查詢結果為一對象數組,其數組的長度取決于selectfrom之間字段的個數。

    1.5    注意分析下面三條語句看有什么不同

    SQLQuery方式

    sqlquery=session.createSQLQuery("select employee.id,employee.empname,employee.empage,employee.context,department.deptname from employee inner join department on employee.deptid=department.id");

    Query方式:

    session.createQuery("select employee.id,employee.empname,employee.empage,employee.context,employee.department.deptname from Employee employee inner join employee.department order by employee.id desc");

    Query方式:

    Query query=session.createQuery("select employee.empname, employee.department from Employee as employee order by employee.id desc");


    電子文檔下載
    posted on 2009-11-25 16:24 雪山飛鵠 閱讀(5193) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 一个人看的www免费在线视频| 亚洲色欲www综合网| 久久www免费人成看片| 午夜成人无码福利免费视频| 免费jlzzjlzz在线播放视频| 免费一级毛suv好看的国产网站| 久久亚洲国产精品成人AV秋霞| 亚洲国产专区一区| 成年女人午夜毛片免费看| 亚洲aⅴ无码专区在线观看春色 | 亚洲an天堂an在线观看| 亚洲成a人片在线观看老师| 成人毛片18女人毛片免费视频未| 99国产精品视频免费观看| 国产成人亚洲合集青青草原精品| 无码专区—VA亚洲V天堂| 国产亚洲美日韩AV中文字幕无码成人 | 久久夜色精品国产噜噜亚洲AV| 国产a视频精品免费观看| 伊人久久大香线蕉免费视频| 白白色免费在线视频| 国产亚洲AV无码AV男人的天堂| 伊在人亚洲香蕉精品区麻豆| 一区二区三区观看免费中文视频在线播放 | 亚洲午夜成人精品无码色欲| 亚洲一级免费毛片| 亚洲国产人成在线观看| 亚洲天堂中文资源| 国产极品美女高潮抽搐免费网站| a级在线观看免费| 精品久久久久久国产免费了| a级毛片免费观看网站| 亚洲av无码电影网| 久久精品国产亚洲av麻豆蜜芽| 亚洲中字慕日产2020| 亚洲最大中文字幕| 亚洲人成在久久综合网站| 亚洲国产成人久久77| 亚洲av成人综合网| 亚洲综合激情五月色一区| 亚洲精品无码久久|