我找不到任何关于如何配置Hibernate逆向工程工具(在Eclipse上)来定义域类属性 fetch = FetchType.EAGER 的解决方案。
PS:默认情况下,定义 fetch = FetchType.LAZY
的所有外键例如我在reveng.xml中定义它并且它适用于主键:
<table name="fin_expence">
<primary-key>
<generator class="identity"></generator>
</primary-key>
</table>
我需要这样的解决方案。
<foreign-key constraint-name="rel_expence_to_tag">
<set lazy="false"></set>
</foreign-key>
我已经测试了这段代码并且它没有用,它引发了一个错误。有人可以帮忙吗?感谢。
答案 0 :(得分:1)
Hibnerate Reverse Engineer流程使用Ejb3PropertyGetAnnotation.ftl模板为POJO中的getter生成Annotations。 如果您看到此文件,则看起来像
<#if ejb3>
<#if pojo.hasIdentifierProperty()>
<#if property.equals(clazz.identifierProperty)>
${pojo.generateAnnIdGenerator()}
<#-- if this is the id property (getter)-->
<#-- explicitly set the column name for this property-->
</#if>
</#if>
<#if c2h.isOneToOne(property)>
${pojo.generateOneToOneAnnotation(property, cfg)}
<#elseif c2h.isManyToOne(property)>
${pojo.generateManyToOneAnnotation(property)}
<#--TODO support optional and targetEntity-->
${pojo.generateJoinColumnsAnnotation(property, cfg)}
<#elseif c2h.isCollection(property)>
${pojo.generateCollectionAnnotation(property, cfg)}
<#else>
${pojo.generateBasicAnnotation(property)}
${pojo.generateAnnColumnAnnotation(property)}
</#if>
</#if>
基于关系类型,它从实际的Pojo类调用api。
注意:有两种类型的Pojo类,即Entity和Component Pojo类。 在您的情况下,您可以扩展这两个类并编写自己的注释实现。