hibernate逆向工程以包含@Transient属性



我试图包括以下

<>之前 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文件。您需要重写它们以放置自定义代码。

步骤:

  1. 如果你正在使用maven,那么把它放在componentProperties下为hbm2java目标:

    <templatepath>src/main/resources/reveng.templates/</templatepath>
    <filepattern>*.java</filepattern>
    
  2. 在资源下创建revenge.templates/pojo文件夹。确保文件夹名称始终为pojo,否则无法检测到覆盖。

  3. 创建pojo.ftl文件并从jar中的pojo.ftl文件复制内容。在此文件中添加所有的import语句

  4. 同样,按照其他文件找到您想要放置自定义代码的确切位置。

据我所知,没有办法在revenge .xml或自定义ReverseEngineeringStrategy中指定这一点。

我解决这个问题的方法是用一个自定义类层扩展我所有生成的基本POJO类,并在那里添加瞬态属性和特殊行为。这不完全是您所要求的,但是它工作得很好,并且在不牺牲代码生成的好处的情况下提供了灵活性。

最新更新