Ответ 1
Вот шаги:
-
Выделите "hibernate-tools.jar", выполнив поиск в вашей папке eclipse Например, вы найдете его на
C:\eclipse\plugins\org.hibernate.eclipse_3.4.1.xxx\lib\tools
-
Извлечение в временную папку (WinRar может это сделать) Например, извлеките в
[Your Project]\template
-
В папке [Ваш проект]\шаблон\pojo создайте файл с именем "Ejb3FieldGetAnnotation.ftl"
Этот файл на самом деле является копией "Ejb3PropertyGetAnnotation.ftl", но все слова "свойство" заменяются "полем", потому что этот файл будет помещен в цикл, который выполняет итерацию через все поля (вместо свойств). Я включаю содержимое файла в этот пост
-
Удалить аннотации на уровне свойств: В файле "PojoPropertyAccessors.ftl" удалите или закомментируйте
<#include "GetPropertyAnnotation.ftl"/>
-
Добавить аннотации на уровне поля: В файле "PojoFields.ftl" добавьте
<#include "Ejb3FieldGetAnnotation.ftl"/> ${pojo.getFieldModifiers(field)} ...
-
При создании объектов Java выберите "Использовать настраиваемые шаблоны" и укажите папку шаблона. В этом случае это будет [Ваш проект]\шаблон
================================================================================== Ejb3FieldGetAnnotation.ftl ================================================================================== <#if ejb3> <#if pojo.hasIdentifierProperty()> <#if field.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(field)> ${pojo.generateOneToOneAnnotation(field, cfg)} <#elseif c2h.isManyToOne(field)> ${pojo.generateManyToOneAnnotation(field)} <#--TODO support optional and targetEntity--> ${pojo.generateJoinColumnsAnnotation(field, cfg)} <#elseif c2h.isCollection(field)> ${pojo.generateCollectionAnnotation(field, cfg)} <#else> ${pojo.generateBasicAnnotation(field)} ${pojo.generateAnnColumnAnnotation(field)} </#if> </#if>
Надеюсь, он сработает для вас.