Javaren就是爪洼人!

          一起來研究java

          常用鏈接

          統(tǒng)計

          最新評論

          用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文件內(nèi)容應該是這樣:

          ${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 閱讀(1400) 評論(4)  編輯  收藏 所屬分類: Java技術(shù)

          評論

          # 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;
          加這個意義不大,這個東西本來是為了標識版本用的,都設(shè)為1L就沒有什么意義了。如果是為了不想看到廣告,在eclipse里設(shè)置一下就好了。  回復  更多評論   


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


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 乌兰县| 福贡县| 久治县| 余江县| 汨罗市| 霸州市| 出国| 博爱县| 新乡市| 新巴尔虎左旗| 呼伦贝尔市| 昆明市| 容城县| 吉林省| 嫩江县| 德庆县| 东至县| 肇庆市| 获嘉县| 辽阳县| 葫芦岛市| 集安市| 广平县| 沧州市| 博兴县| 富锦市| 民乐县| 明溪县| 伽师县| 江山市| 桐梓县| 延边| 邯郸县| 长岛县| 渝中区| 乐都县| 成安县| 河北区| 肇州县| 大同县| 万全县|