<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://www.tkk7.com/sxyx2008/謝謝合作!!!

    雪山飛鵠

    溫馨提示:您的每一次轉(zhuǎn)載,體現(xiàn)了我寫此文的意義!!!煩請您在轉(zhuǎn)載時注明出處http://www.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)航:
     
    主站蜘蛛池模板: 国产高潮久久免费观看| 亚洲男女一区二区三区| 成a人片亚洲日本久久| 成人毛片免费在线观看| 亚洲午夜精品一区二区公牛电影院| 久久成人无码国产免费播放| 91嫩草私人成人亚洲影院| 51在线视频免费观看视频| 亚洲综合一区二区国产精品| 91短视频免费在线观看| 精品久久亚洲中文无码| 日韩毛片免费在线观看| 一级视频在线免费观看| 亚洲五月午夜免费在线视频| 成人片黄网站色大片免费观看cn| 亚洲无码日韩精品第一页| 水蜜桃视频在线观看免费播放高清 | 亚洲色成人网站WWW永久四虎 | 91视频免费观看高清观看完整| 亚洲精品少妇30p| 精品无码国产污污污免费网站| 亚洲国产精品成人精品小说| 免费看又爽又黄禁片视频1000| 人体大胆做受免费视频| 亚洲AV无码久久精品色欲| 国产又大又粗又长免费视频 | 亚洲电影中文字幕| 男女超爽刺激视频免费播放| 久久亚洲欧美国产精品| 亚洲色欲色欲www在线丝| 精品国产无限资源免费观看| 香蕉97碰碰视频免费| 亚洲人成电影在线天堂| 日本免费v片一二三区| av永久免费网站在线观看 | 亚洲韩国精品无码一区二区三区| h视频在线免费看| 亚美影视免费在线观看| 亚洲一级毛片视频| AV在线播放日韩亚洲欧| 黄页免费的网站勿入免费直接进入|