void

          Hibernate延遲加載

          示例數據表:team(班級)、certificate(身份證)、student(學生)

          Team.hbm.xml
          <?xml version="1.0" encoding="utf-8"?>
          <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
          <!--
              Mapping file autogenerated by MyEclipse Persistence Tools
          -->
          <hibernate-mapping>
              <class name="edu.dgut.ke.model.Team" table="TEAM" lazy ="true" ><!-- 多對一的延遲加載設置 -->
                  <id name="id" type="java.lang.String">
                      <column name="ID" length="32" />
                      <generator class="uuid.hex" />
                  </id>
                  <property name="teamname" type="java.lang.String">
                      <column name="TEAMNAME" length="32" not-null="true" unique="true" />
                  </property>
                  <set name="students" inverse="true" cascade="all" lazy="true" > <!-- 一對多的延遲加載設置 -->
                      <key>
                          <column name="TEAMID" length="32" not-null="true" />
                      </key>
                      <one-to-many class="edu.dgut.ke.model.Student" />
                  </set>
              </class>
          </hibernate-mapping>

          Certificate.hbm.xml
          <?xml version="1.0" encoding="utf-8"?>
          <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
          <!--
              Mapping file autogenerated by MyEclipse Persistence Tools
          -->
          <hibernate-mapping>
              <class name="edu.dgut.ke.model.Certificate" table="CERTIFICATE" lazy="true" ><!-- 一對一的延遲加載設置 -->

                  <id name="id" type="java.lang.String">
                      <column name="ID" length="32" />
                      <generator class="uuid">
                     
                      </generator>
                  </id>
                  <property name="describe" type="java.lang.String">
                      <column name="`DESCRIBE`" length="50" not-null="true" />
                  </property>
                  <one-to-one name="student"
                  class="edu.dgut.ke.model.Student"
                   constrained="true" ><!-- 一對一的延遲加載設置 -->

                  </one-to-one>
              </class>
          </hibernate-mapping>

          Student.hbm.xml
          <?xml version="1.0" encoding="utf-8"?>
          <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
          <!--
              Mapping file autogenerated by MyEclipse Persistence Tools
          -->
          <hibernate-mapping>
              <class name="edu.dgut.ke.model.Student" table="STUDENT" lazy="true" >
                  <id name="id" type="java.lang.String">
                      <column name="ID" length="32" />
                      <generator class="uuid.hex" />
                  </id>
                  <many-to-one name="certificate"
                  class="edu.dgut.ke.model.Certificate"
                  unique="true"
                  column="cardId"
                  cascade="all"
                  >
                  </many-to-one>
                  <many-to-one name="team" class="edu.dgut.ke.model.Team">
                      <column name="TEAMID" length="32" not-null="true" />
                  </many-to-one>
                  <property name="studentname" type="java.lang.String">
                      <column name="STUDENTNAME" length="16" not-null="true" unique="true" />
                  </property>
              </class>
          </hibernate-mapping>
          注意:對one-to-one 關系進行延遲加載和其他關系相比稍微有些不同。many-to-one 的延遲加載是在配置文件的class 標簽
          上設置 lazy="true" ,one-to-many 和 many-to-many 的延遲加載是在 set 標簽中設置lazy="true"。而one-to-one 不只要在 classs
          標簽設置 lazy="true",而且要在one-to-one 標簽中設置constrained="true" 。
          如果不設置constrained="true",則一對一查詢使用默認的預先抓取策略(fetch="join")。

          posted on 2008-07-19 12:10 void 閱讀(193) 評論(0)  編輯  收藏 所屬分類: Hibernate

          主站蜘蛛池模板: 班戈县| 广灵县| 庄河市| 大英县| 嘉峪关市| 巫山县| 封丘县| 健康| 诸城市| 镇远县| 临漳县| 九寨沟县| 铜山县| 南汇区| 普宁市| 屏东县| 安图县| 淮北市| 高安市| 北宁市| 砀山县| 盐山县| 崇义县| 海淀区| 武乡县| 云南省| 福贡县| 武胜县| 新安县| 正蓝旗| 延津县| 新沂市| 渝北区| 安吉县| 酒泉市| 本溪市| 莱芜市| 理塘县| 沙湾县| 三都| 格尔木市|