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;
发表回复
要发表评论,您必须先登录。