Как получить Hibernate Tools для генерации POJO с toString,equals и hashcode?
Плагин Hibernate Tools (версия 3.2.4) для Eclipse
Всем привет,
Я использую плагин для обратной разработки моих POJO и DAO из моей DB-схемы, и по какой-то причине методы toString, equals и hashcode не создаются в POJO.
Я делаю следующее: создаю новый проект JPA.
Настройте его файл persistence.xml следующим образом:
<persistence-unit name="PU">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<property name="hibernate.connection.driver_class" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
<property name="hibernate.connection.password" value="pass"/>
<property name="hibernate.connection.url" value="jdbc:sqlserver://****:1433;DatabaseName=myDB"/>
<property name="hibernate.connection.username" value="user"/>
<property name="hibernate.default_catalog" value="myDB"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.SQLServerDialect"/>
<property name="hibernate.connection.schema" value="dbo"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.format_sql" value="false"/>
Создал файл hibernate.reveng.xml, чтобы выбрать только мою схему dbo в моем каталоге.
Затем создал конфигурацию консоли Hibernate с типом JPA и подключением, которое нужно взять из конфигурации JPA, и, наконец, настроил модуль сохраняемости.
Использовал конфигурации Hibernate Code Generation для создания новой конфигурации, в которой я включил "Обратный инженер из JDBC Connection", определил выходной каталог, пакет и файл мести.
Кроме того, я установил все флажки на этой вкладке (кроме использования пользовательских шаблонов).
На вкладке экспортеров я использовал:
1. Используйте синтаксис Java 5.
2. Создайте аннотации EJB3.
и использовали экспортеры "Код домена" и "Код DAO".
Это работает нормально (после решения некоторых проблем с совместимостью плагина DTP).
Основная проблема в том, что я вижу в Pojo.ftl следующие выражения:
<#include "PojoToString.ftl"/>
<#include "PojoEqualsHashcode.ftl"/>
и в PojoToString.ftl я вижу:
<#if pojo.needsToString()>
Где я могу установить это свойство? Я хочу, чтобы все мои pojos нуждались в toString, equals и hashcode?
заранее спасибо
1 ответ
Это предполагает использование Hibernate Tools/JBoss Tools по умолчанию
Вы определяете его для каждого столбца, для которого вы хотите вызвать toString() или equals(). Предоставьте это как мета свойство
<table schema="public" name="someName" class="com.stackovervlow">
<primary-key>
</primary-key>
<column name="xx" property="id" type="long">
<meta attribute="use-in-tostring">true</meta>
<meta attribute="scope-set">private</meta>
</column>
<column name="yy">
<meta attribute="use-in-tostring">true</meta>
<meta attribute="use-in-equals">true</meta>
</column>
</table>