Как получить Hibernate Tools для генерации POJO с toString, equals и hashcode? - PullRequest
3 голосов
/ 09 февраля 2011

Плагин 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 scehma в моем каталоге.
Затем создал конфигурацию консоли 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 Ответ

2 голосов
/ 02 августа 2012

Предполагается, что по умолчанию Hibernate Tools / JBoss Tools

Вы определяете его для каждого столбца, для которого вы хотите вызвать toString () или equals ().Укажите его как meta свойство

<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>
...