Javaren就是爪洼人!

          一起來研究java

          常用鏈接

          統計

          最新評論

          用hbm2java給pojo增加serialVersionUID的小技巧

          Hibernate 3.2.x 工具中hbm2java生成的pojo類總是類似下面:
          public class Child  implements java.io.Serializable {
              
          private int cid;
              
          private String childName;

              
          public int getCid() {
                  
          return this.cid;
              }

              
          public void setCid(int cid) {
                  
          this.cid = cid;
              }

              
          public String getChildName() {
                  
          return this.childName;
              }
             
              
          public void setChildName(String childName) {
                  
          this.childName = childName;
              }

          }

          但是如果你使用JDK5.0或更高版本時,總是警告該類缺少個static final long serialVersionUID,如何才能在hbm2java生成java源代碼時自動加上呢?這就要修改hibernate-tools.jar中自帶的pojo模板了。

          首先,你將hibernate-toosl.jar中的pojo/Pojo.ftl文件解壓出來,在<#if !pojo.isInterface()>的下一行增加:static final long serialVersionUID = 1L;增加后整個Pojo.ftl文件內容應該是這樣:

          ${pojo.getPackageDeclaration()}
          // Generated ${date} by Hibernate Tools ${version}

          <#assign classbody>
          <#include "PojoTypeDeclaration.ftl"/> {

          <#if !pojo.isInterface()>
          static final long serialVersionUID = 1L;

          <#include "PojoFields.ftl"/>
          <#include "PojoConstructors.ftl"/>
            
          <#include "PojoPropertyAccessors.ftl"/>

          <#include "PojoToString.ftl"/>

          <#include "PojoEqualsHashcode.ftl"/>

          <#else>
          <#include "PojoInterfacePropertyAccessors.ftl"/>

          </#if>
          <#include "PojoExtraClassCode.ftl"/>

          }

          </#assign>

          $
          {pojo.generateImports()}
          $
          {classbody}

          然后將此Pojo.ftl文件覆蓋hibernate-tools.jar壓縮包中的即可。

          最后,再次運行你的ant,build.xml不需要修改生成的類就自動有了:static final long serialVersionUID = 1L;
          呵呵,很好玩吧。我們還可以在Pojo.ftl模板文件中增加其他自己需要的代碼了!

          posted on 2007-12-02 13:54 Terry Lee 閱讀(1397) 評論(4)  編輯  收藏 所屬分類: Java技術

          評論

          # re: 用hbm2java給pojo增加serialVersionUID的小技巧 2007-12-02 15:13 oracle

          學習下  回復  更多評論   

          # re: 用hbm2java給pojo增加serialVersionUID的小技巧 2007-12-03 13:05 專注java開源

          使用freemark模版看上去淺析。可以隨意添加自己的東西。

          freemark模版介紹資料:
          http://www.agilesource.org/column_21_1.html  回復  更多評論   

          # re: 用hbm2java給pojo增加serialVersionUID的小技巧 2007-12-03 13:05 專注java開源

          使用freemark模版看上去淺析。可以隨意添加自己的東西。

          freemark以及其它開源模版介紹資料:
          http://www.agilesource.org/column_21_1.html

            回復  更多評論   

          # re: 用hbm2java給pojo增加serialVersionUID的小技巧 2007-12-06 21:43 西濱

          static final long serialVersionUID = 1L;
          加這個意義不大,這個東西本來是為了標識版本用的,都設為1L就沒有什么意義了。如果是為了不想看到廣告,在eclipse里設置一下就好了。  回復  更多評論   


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 密云县| 富锦市| 滕州市| 嵩明县| 昌宁县| 隆回县| 襄汾县| 尉氏县| 赤峰市| 乐陵市| 铜川市| 商都县| 扶风县| 措美县| 赤峰市| 阿巴嘎旗| 祁东县| 衡山县| 旌德县| 方城县| 开封市| 无极县| 桃园市| 亚东县| 万安县| 扎赉特旗| 丹东市| 比如县| 仁化县| 托里县| 资兴市| 历史| 凌源市| 枝江市| 玛沁县| 甘南县| 宁海县| 平度市| 沙坪坝区| 英超| 育儿|