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 閱讀(606) 評論(0)  編輯  收藏 所屬分類: HIBERNATE

          主站蜘蛛池模板: 铁岭县| 镇平县| 思茅市| 玉林市| 锡林浩特市| 塘沽区| 西乌珠穆沁旗| 余姚市| 石家庄市| 英吉沙县| 瑞昌市| 盐源县| 翼城县| 麟游县| 青岛市| 桑植县| 汉阴县| 榆社县| 烟台市| 扎赉特旗| 长沙县| 金湖县| 登封市| 铁力市| 万荣县| 拉孜县| 蓬溪县| 富平县| 福安市| 高邑县| 柏乡县| 合山市| 嵊泗县| 二连浩特市| 商洛市| 务川| 抚远县| 抚州市| 盐亭县| 岑巩县| 福海县|