用于eclipse的Hibernate Tools插件(版本3.2.4)
大家好,
我正在使用插件从我的DB-Schema中反向设计我的POJO和DAO,并且由于某种原因,在POJO中没有创建toString,equals和hashcode方法。
我正在做的是以下内容:
创建一个新的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
然后创建了一个类型为JPA的Hibernate控制台配置,以及从JPA配置中获取的连接,最后配置了持久性单元。
使用Hibernate代码生成配置创建一个新配置,我在其中启用了“从JDBC连接反向工程”,定义了输出目录,包和reveng文件。
此外,我检查了该选项卡中的所有复选框(除了使用自定义模板)
在我使用的出口商标签中:
1.使用Java 5语法
2.生成EJB3注释
并使用“域代码”和“DAO代码”出口商
这很好(在解决了DTP插件兼容性的一些问题之后)
主要问题是我在Pojo.ftl中看到以下表达式:
<#include "PojoToString.ftl"/>
<#include "PojoEqualsHashcode.ftl"/>
在PojoToString.ftl中,我看到了:
<#if pojo.needsToString()>
我在哪里可以设置此属性?我希望我的所有pojos都需要toString,equals和hashcode?
提前谢谢
答案 0 :(得分:2)
这假设是默认的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>