我正在尝试为Hibernate制作自定义逆向工程模板。在我在网上看到的许多模板中,我看到了诸如pojo,class,c2j之类的变量。我的问题是这些变量来自哪里?我可以说,经常提到的pojo是一个BasicPOJOClass实体,但我似乎无法找到模板可用的所有变量。
例如,以下是某个版本的hibernatetools在网络上找到的ftl。
<#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.isManyToOne(property)>
<#--TODO support @OneToOne true and false-->
${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>
只需阅读模板,您就知道有可用的变量,例如cfg,clazz,c2h和ejb3,但您不知道它们是什么以及它们可以使用哪些方法。非常感谢任何帮助。
答案 0 :(得分:2)
我认为大多数FreeMarker根上下文设置都是在AbstractExporter和GenericExporter类中处理的。看起来有几个可用的变量,例如
如果其他一切都失败了,你将不得不深入挖掘这些源文件,以了解它们的含义......
HTH。