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

          主站蜘蛛池模板: 本溪市| 射阳县| 丹江口市| 文安县| 临漳县| 乐业县| 道真| 重庆市| 区。| 云和县| 西峡县| 万宁市| 湛江市| 乌拉特前旗| 隆安县| 独山县| 枝江市| 潜山县| 周至县| 花垣县| 平顺县| 绥江县| 桓仁| 黑河市| 凤冈县| 乡宁县| 普安县| 巴彦淖尔市| 大城县| 栖霞市| 崇信县| 成安县| 嘉兴市| 上饶市| 丘北县| 安康市| 深泽县| 分宜县| 厦门市| 民县| 修水县|