Использовать информацию SQL для заполнения документации схемы и комментариев к коду с помощью инструментов Hibernate? - PullRequest
1 голос
/ 15 сентября 2010

Я настроил Hibernate Tools из Eclipse для автоматического создания классов на основе существующей БД.Для каждой из таблиц я задокументировал их и каждый из их столбцов в SQL Server.Есть ли способ использовать эту информацию документации для комментирования сгенерированных классов и для заполнения документации сущности схемы?Я вижу, что есть метатеги, которые можно поместить в файлы отображения hbm.xml, но, поскольку они создаются автоматически каждый раз, мне нужно либо добавлять их обратно, либо постоянно добавлять новые изменения, плюс в идеалечтобы БД была «правдивой» информацией и не сохраняла такую ​​информацию в файлах отображения.Кто-нибудь знает, возможно ли это и если да, то как это сделать?Спасибо ...

Ответы [ 2 ]

0 голосов
/ 12 июля 2015

Если вы используете задачу инструмента Hibernate для генерации классов pojo из файлов HBM и базы данных, он по умолчанию добавит документацию в сгенерированные классы java. Вы можете увидеть ее в ftl-файле pojoTypeDeclaration.

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

Где pojo.getClassJavaDoc будет генерировать документацию, если у вашего hbm-файла есть объявленный мета-атрибут, такой как CLASS_DESCRIPTION.

0 голосов
/ 15 сентября 2010

Есть ли способ использовать эту информацию документации для комментирования сгенерированных классов и для заполнения документации сущности схемы?

Насколько мне известно, комментарии к таблицам и столбцам используются в некоторых сгенерированных файлах, по крайней мере в следующих шаблонах из 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, вам придется изменить шаблоны для этого.

...