隨筆-124  評論-49  文章-56  trackbacks-0

          Component映射(值對象映射)

          在hibernate中,component是某個實體的邏輯組成部分,它與實體的根本區別是沒有oid,
          component可以稱為是值對象(DDD)

          采用component映射的好處:它實現了對象模型的細粒度劃分,層次會更分明,復用率會更高

          <!--
            User:                             Comtact:
            private int id;                    private String email;
              private String name;         private String address;
              private Comtact comtact;     private String phone;
          -->
          <class name="User" table="t_user">
                  
          <id name="id">
                      
          <generator class="native"/>
                  
          </id>
                  
          <property name="name"/>
                  
          <component name="comtact">
                      
          <property name="email"/>
                      
          <property name="address"/>
                      
          <property name="phone"/>
                  
          </component>
          </class>

          復合(聯合)主鍵映射

          通常將復合主鍵相關的屬性,單獨放到一個類中
           * 此類必須實現序列化接口
           * 覆寫hashcode和equals方法

          <class name="com.bjsxt.hibernate.FiscalYearPeriod" table="t_fiscal_year_period">
                  
          <composite-id name="fiscalYearPeriodPK">
                      
          <key-property name="fiscalYear"/>
                      
          <key-property name="fiscalPeriod"/>    
                  
          </composite-id>
                  
          <property name="beginDate"/>
                  
          <property name="endDate"/>
                  
          <property name="periodSts"/>
              
          </class>

          public class FiscalYearPeriodPK implements Serializable {
              
          //核算年
              private int fiscalYear;
              
          //核算月
              private int fiscalPeriod;
              
          public int getFiscalYear() {
                  
          return fiscalYear;
              }

              
          public void setFiscalYear(int fiscalYear) {
                  
          this.fiscalYear = fiscalYear;
              }

              
          public int getFiscalPeriod() {
                  
          return fiscalPeriod;
              }

              
          public void setFiscalPeriod(int fiscalPeriod) {
                  
          this.fiscalPeriod = fiscalPeriod;
              }


              @Override
              
          public int hashCode() {
                  
          final int prime = 31;
                  
          int result = 1;
                  result 
          = prime * result + fiscalPeriod;
                  result 
          = prime * result + fiscalYear;
                  
          return result;
              }


              @Override
              
          public boolean equals(Object obj) {
                  
          if (this == obj)
                      
          return true;
                  
          if (obj == null)
                      
          return false;
                  
          if (getClass() != obj.getClass())
                      
          return false;
                  
          final FiscalYearPeriodPK other = (FiscalYearPeriodPK) obj;
                  
          if (fiscalPeriod != other.fiscalPeriod)
                      
          return false;
                  
          if (fiscalYear != other.fiscalYear)
                      
          return false;
                  
          return true;
              }

          }


          public class FiscalYearPeriod {
              
          private FiscalYearPeriodPK fiscalYearPeriodPK;
              
          //開始日期
              private Date beginDate;
              
          //結束日期
              private Date endDate;
              
          //狀態
              private String periodSts;
          }
          posted on 2009-11-03 16:22 junly 閱讀(198) 評論(0)  編輯  收藏 所屬分類: hibernate/orm
          主站蜘蛛池模板: 铜川市| 天水市| 沙洋县| 枣庄市| 克山县| 长阳| 渝北区| 常宁市| 凌源市| 遂溪县| 香格里拉县| 江源县| 宝丰县| 当雄县| 琼结县| 肥乡县| 朝阳区| 乌拉特后旗| 韩城市| 麟游县| 阳春市| 定陶县| 鄄城县| 库伦旗| 甘肃省| 库车县| 灵川县| 海门市| 织金县| 南昌市| 饶阳县| 平度市| 五家渠市| 通山县| 杭锦旗| 饶河县| 广汉市| 广西| 萝北县| 沅江市| 雷波县|