HIbernate逆向工程配置急切加载

时间:2015-05-29 07:32:08

标签: reverse-engineering hibernate-mapping hibernate-4.x hibernate-tools hibernate-onetomany

我找不到任何关于如何配置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>

我已经测试了这段代码并且它没有用,它引发了一个错误。有人可以帮忙吗?感谢。

1 个答案:

答案 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类。 在您的情况下,您可以扩展这两个类并编写自己的注释实现。