使用SQL信息使用Hibernate工具填充架构文档和代码注释?

时间:2010-09-14 21:04:54

标签: java hibernate schema entity hibernate-tools

我已经在Eclipse中设置了Hibernate Tools来自动生成基于现有数据库的类。对于每个表,我都记录了它们以及SQL Server中的每个列。有没有办法使用该文档信息来评论生成的类并填充模式实体文档?我看到有一些元标记可以放在hbm.xml映射文件中,但是因为每次我需要重新添加它们或者在新的更改中不断合并时我会自动生成这些标记,而且我理想情况下喜欢让DB成为“真实”信息,而不是将这种信息存储在映射文件中。有谁知道这是否可能,如果可以,怎么做?感谢...

2 个答案:

答案 0 :(得分:0)

  

有没有办法使用该文档信息来评论生成的类并填充架构实体文档?

据我所知,表格和列注释用于某些生成的文件中,至少在hibernate-tools.jar的以下模板中使用:

  • doc/tables/table.ftl
  • hbm/column.hbm.ftl
  • hbm/persistentclass.hbm.ftl

例如,在hbm/column.hbm.ftl

<#if column.isFormula()>
<formula>${column.getFormula()}</formula>
<#else>
<column name="${column.quotedName}" ${c2h.columnAttributes(column)}<#if column.comment?exists && column.comment?trim?length!=0>>
<comment>${column.comment}</comment>
</column><#else>/>
</#if>
</#if>

但是在注释POJO的模板中没有使用它们,您必须为此修改模板。

答案 1 :(得分:0)

如果您使用Hibernate工具任务从HBM文件和数据库生成pojo类,它将默认在生成的java类中添加文档。您可以在pojoTypeDeclaration ftl文件中看到它。

/**
${pojo.getClassJavaDoc(pojo.getDeclarationName() + " generated by hbm2java", 0)}
 */
<#include "Ejb3TypeDeclaration.ftl"/>
${pojo.getClassModifiers()} ${pojo.getDeclarationType()} ${pojo.getDeclarationName()} ${pojo.getExtendsDeclaration()} ${pojo.getImplementsDeclaration()}

如果你的hbm文件声明了元属性,例如CLASS_DESCRIPTION,pojo.getClassJavaDoc将生成文档。