当我在eclipse中生成hibernate类时,所有的类文件都在更新,尽管现在在数据库中进行了真正的更改。大多数文件中唯一的变化是注释行: //由Hibernate Tools 3.4.0.CR1生成的2011年6:50:40 AM。
每次重新生成时更改这一行都不方便,因为它会中断对SVN中更改的跟踪。
有没有办法指示生成过程不生成此行?
发布于 2011-06-16 01:05:04
我发现了这个:https://forum.hibernate.org/viewtopic.php?f=6&t=989777&view=next
我使用的是Windows7和NetBeans 7,所以可以在这里找到hibernate-tools.jar
文件:C:\Program Files\NetBeans 7.0\java\modules\ext\hibernate
。由于Program Files目录通常是只读的,所以我必须使用以管理员权限打开的WinZip打开jar
。要修改jar
文件,必须关闭NetBeans。
然后,我只是导航到/pojo/Pojo.ftl
文件(对于生成的.java
文件)和hbm\hibernate-mapping.hbm.ftl
文件(对于生成的.hbm.xml
文件),并在记事本中打开它们。我只删除了$(date)
部分,所以我保留了使用的Hibernate版本。当我将文件保存到记事本中时,Winzip检测到了更改,并询问我是否要更新.jar
文件。
然后,当我重新启动NetBeans并重新生成我的文件时,日期已经过去了。做起来有点痛苦,但它很管用。
发布于 2011-06-26 23:20:36
定制freemarker模板(如CuppM所解释的)是一种方法。不过,您不需要强制将定制的模板放回jar中。例如,如果您使用hibernate工具ant task,则可以指定"templatepath“和hbmtemplate属性:
<hibernatetool destdir="hibernate-model-gen/pojo" templatepath="hibernate-model-gen/customized-templates">
<jdbcconfiguration configurationfile="hibernate-model-gen/hibernate.cfg.xml" packagename="open.pub.proto.core.model" revengfile="hibernate-model-gen\gen-conf\hibernate.reveng.xml" detectmanytomany="true" />
<hbmtemplate templateprefix="pojo/" template="pojo/Pojo.ftl" filepattern="{package-name}/{class-name}.java">
<property key="jdk5" value="true" />
<property key="ejb3" value="true" />
</hbmtemplate>
</hibernatetool>
此外,最好在专用目录中生成pojo,而不是在源代码pojos中生成pojos。然后,您可以只复制源码pojos上已更改的pojos。
https://stackoverflow.com/questions/6354141
复制相似问题