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

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

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

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

    雪山飛鵠

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

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

    Hibernate級聯(lián)查詢(HQL)

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

    1.1    數(shù)據(jù)庫模型

    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級聯(lián)查詢的HQL語句時,與傳統(tǒng)的JDBC方式有著本質(zhì)的區(qū)別

    1.4.1          JDBC級聯(lián)寫法

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

    1.4.2          HQL級聯(lián)寫法

    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

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

    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)  編輯  收藏

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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 国产精品亚洲专区无码牛牛 | 亚洲av色香蕉一区二区三区| 亚洲精品视频在线观看免费 | 夜夜爽免费888视频| 91在线视频免费播放| 西西大胆无码视频免费| 免费无码AV电影在线观看| 免费观看激色视频网站bd| 在线观看永久免费| 日本阿v免费费视频完整版| 青春禁区视频在线观看直播免费 | 国产精品亚洲а∨无码播放麻豆| 亚洲av无码专区在线观看下载| 亚洲人成网站999久久久综合| 亚洲第一街区偷拍街拍| 色九月亚洲综合网| 香蕉国产在线观看免费| 久久av免费天堂小草播放| 免费播放在线日本感人片| 久久免费观看国产精品| 日本人的色道免费网站| 成年女人毛片免费视频| 国产美女无遮挡免费视频网站 | 久久WWW色情成人免费观看| 成人黄动漫画免费网站视频 | 亚洲成人在线免费观看| 国产成人午夜精品免费视频| 免费鲁丝片一级在线观看| 亚洲av手机在线观看| 亚洲宅男天堂在线观看无病毒| 亚洲产国偷V产偷V自拍色戒| 亚洲欧洲视频在线观看| 在线观看日本亚洲一区| 一本久久免费视频| 久久精品一本到99热免费| 在线v片免费观看视频| 四虎永久在线精品视频免费观看| 亚洲亚洲人成综合网络| 亚洲天堂一区在线| 精品亚洲av无码一区二区柚蜜| 一级有奶水毛片免费看|