1

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

4

3 回答 3

3

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

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

但是一位经验丰富的 hibernate 用户告诉我,他总是会更改 hbm2java 生成的代码以满足他的需要。

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

于 2013-01-07T11:34:00.757 回答
1

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

于 2013-01-07T11:28:56.713 回答
0

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

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

要更改模板,pojo请从 Hibernate-Tools-sources 中提取 -folder 到您 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>

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

于 2013-08-30T08:52:23.267 回答