4

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

所以我想知道是否有一种方法可以在文件中的每个 pojo(table) 的 equals 方法中放置要使用的属性hibernate.reveng.xml

4

2 回答 2

6

这是一个未记录的功能(并且在线DTD已过时),但您可以添加<meta>and<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应该是最新的(看起来像这样)并声明:

<!ELEMENT column (meta*) >

在Seam in Action 论坛中对此进行了讨论

于 2010-03-26T15:51:38.363 回答
2

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

于 2010-03-26T15:18:09.643 回答