paulwong

          重寫toString(),hashCode()和equals()的簡便方法

          使用APACHE的LANG包中的相關類,可簡寫很多。


              public String toString() {   
                  
          return ToStringBuilder.reflectionToString(this,   
                          ToStringStyle.MULTI_LINE_STYLE);   
              }
             
            
              
          public boolean equals(Object o) {   
                  
          return EqualsBuilder.reflectionEquals(this, o);   
              }
             
            
              
          public int hashCode() {   
                  
          return new HashCodeBuilder(1737)   
                              .append(id)   
                              .append(name)   
                              .append(state)   
                              .toHashCode();   
              }
            



          如果PO中有SET的集合對象,并且配置了HIBERNATE中的lazy="true",則算HASHCODE不能用反射的方法,只能一個屬性一個屬性的累加計算HASHCODE,集合SET不算HASHCODE,否則會拋LazyInitializationException。繼承的子類可以用這種方法加以覆蓋:


          public int hashCode() {   
                  
          return new HashCodeBuilder(1737)   
                              .appendSuper(
          super.hashCode())
                              .append(code)
                              .toHashCode();   
              }
           


          posted on 2009-05-08 13:50 paulwong 閱讀(609) 評論(0)  編輯  收藏 所屬分類: HIBERNATE

          主站蜘蛛池模板: 孝昌县| 河东区| 三门峡市| 崇礼县| 靖边县| 北京市| 措美县| 沐川县| 晋州市| 县级市| 阜宁县| 金堂县| 陵川县| 甘德县| 常山县| 宜昌市| 丰都县| 兴业县| 武功县| 紫阳县| 晋州市| 托里县| 馆陶县| 金门县| 浮梁县| 滕州市| 铅山县| 宁德市| 肃南| 邢台县| 凤凰县| 凤翔县| 内黄县| 崇明县| 平谷区| 武隆县| 疏附县| 垦利县| 呈贡县| 高唐县| 太保市|