应该更改hibernate生成的代码以满足需求



在我看来,自动生成的代码一般/首选不应该手工更改,因为我们不能再生任何东西。但是一位经验丰富的hibernate用户告诉我,他总是会修改hbm2java生成的代码来满足他的需求。"适合需要"也很重要,所以我不确定这个主要的好是不是。

自动生成的代码一般/首选不应该手工更改吗?

->你不应该手工修改代码,因为如果你手工修改代码,下次你又会自动生成pojo类。您可能有很多更改要做,并且很难维护您的手动更改。再说一次,人是会犯错的,如果你错过了重大的改变,那么对你来说真的会很困难。

但是一个有经验的hibernate用户告诉我,他总是会修改hbm2java生成的代码来满足他的需要。

->您可以更改代码生成(复仇)脚本来根据您的需要生成类,而不是在生成的代码中进行手动更改。

我在这种情况下使用aspectJ,因为我也不喜欢更改生成的代码。它也有帮助,因为您不能通过重新生成代码来破坏某些东西……(注意:触发构建的并不总是你)

您最好通过复仇模板间接更改代码!

  • 如果您重新生成源,您的自定义将丢失。

要更改模板,从Hibernate-Tools-sources中提取pojo文件夹到下面示例中的src/main/templates/pojo/Pojo.ftl文件夹。

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>hibernate3-maven-plugin</artifactId>
  <version>2.2</version>
  <configuration>
    <components>
      <component>
        <name>hbm2java</name>
        <outputDirectory>src/main/java</outputDirectory>
      </component>
    </components>
    <componentProperties>
             <!-- to change the filename of the entitys to *Impl.java for examle -->
      <reversestrategy>mypackage.MyStrategy</reversestrategy>   
      <revengfile>/src/main/config/hibernate.reveng.xml</revengfile>
      <configurationfile>/src/main/config/hibernate.cfg.xml</configurationfile>
             <!-- modify the templates to your needs -->
      <templatepath>src/main/templates</templatepath>
    </componentProperties>
  </configuration>
</plugin>

非常欢迎更改模板(即使它们很难阅读)!通常与长寿命的会话相结合是不可缺少的。

相关内容

  • 没有找到相关文章

最新更新