我试图包括以下
<>之前
private org.springframework.web.multipart.commons.CommonsMultipartFile photo;
@Transient
public CommonsMultipartFile getPhoto() {
return photo;
}
public void setPhoto(CommonsMultipartFile photo) {
this.photo = photo;
}
之前从数据库表生成的pojo类
我已经研究发现有一种方法来提及额外的类代码在meta标签中,如
http://www.scribd.com/doc/23123635/30/Guiding-the-reverse-engineering-process,但不允许添加属性变量photo。
请建议我如何在revenge .xml中这样做每次运行hbm2java时都包含此代码。
提前感谢!
您可以通过使用复仇模板实现这样的自定义代码。如果你打开hibernate-tools.jar
,你会在pojo
文件夹中找到。ftl文件。您需要重写它们以放置自定义代码。
步骤:
-
如果你正在使用maven,那么把它放在
componentProperties
下为hbm2java目标:<templatepath>src/main/resources/reveng.templates/</templatepath> <filepattern>*.java</filepattern>
-
在资源下创建
revenge.templates/pojo
文件夹。确保文件夹名称始终为pojo
,否则无法检测到覆盖。 -
创建
pojo.ftl
文件并从jar中的pojo.ftl
文件复制内容。在此文件中添加所有的import语句 -
同样,按照其他文件找到您想要放置自定义代码的确切位置。
据我所知,没有办法在revenge .xml或自定义ReverseEngineeringStrategy中指定这一点。
我解决这个问题的方法是用一个自定义类层扩展我所有生成的基本POJO类,并在那里添加瞬态属性和特殊行为。这不完全是您所要求的,但是它工作得很好,并且在不牺牲代码生成的好处的情况下提供了灵活性。