Hibernate使用Equals生成POJO

时间:2010-03-26 14:08:42

标签: java hibernate orm reverse-engineering pojo

我们在一个新项目中使用hibernate,之后我们使用hibernate.reveng.xml创建我们的*.hbm.xml文件和POJO。我们希望在每个POJO中都有等于方法。 我发现你可以在你的hbm文件中使用<meta attribute="use-in-equals">true</meta>来标记在equals中使用哪些属性。但这意味着编辑大量文件,然后在我们修改数据库中的表或列时,将来再次重新编辑文件。

所以我想知道是否有办法在hibernate.reveng.xml文件中的每个pojo(表格)的equals方法中放置哪些属性?

2 个答案:

答案 0 :(得分:6)

这是一项未记录的功能(在线DTD已过期),但您可以在<meta><table>元素中添加<colum>。换句话说,你应该能够做到这一点:

<table name="PROPERTY" catalog="DATA" schema="PUBLIC">
  <meta attribute="extends">BasicDataObject</meta>
  <meta attribute="scope-class">public abstract</meta>
  <column name="ID">
    <meta attribute="use-in-equals">true</meta>
    <meta attribute="use-in-tostring">true</meta>
  </column>
</table>

hibernate-tools.jar 中的DTD应该是最新的(看起来像this one)并声明:

<!ELEMENT column (meta*) >

在Seam in Action论坛中有a discussion这个。

答案 1 :(得分:2)

eclipse具有相等的哈希码生成器。我们用它来生成这些方法。