引用的Freemarker Hibernate类位于何处

时间:2011-09-12 20:44:06

标签: hibernate templates reverse-engineering freemarker

我正在尝试为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,但您不知道它们是什么以及它们可以使用哪些方法。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

我认为大多数FreeMarker根上下文设置都是在AbstractExporterGenericExporter类中处理的。看起来有几个可用的变量,例如

  • 伪影
  • C2H
  • C2J
  • CFG
  • clazz所
  • 出口
  • outputdir
  • POJO
  • template_path

如果其他一切都失败了,你将不得不深入挖掘这些源文件,以了解它们的含义......

HTH。