hibernate用hbm2java给pojo增加serialVersionUID

    技术2022-05-11  2

    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; 

    最新回复(0)