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