我们在一个新项目中使用hibernate,之后我们使用hibernate.reveng.xml
创建我们的*.hbm.xml
文件和POJO。我们希望在每个POJO中都有等于方法。
我发现你可以在你的hbm文件中使用<meta attribute="use-in-equals">true</meta>
来标记在equals中使用哪些属性。但这意味着编辑大量文件,然后在我们修改数据库中的表或列时,将来再次重新编辑文件。
所以我想知道是否有办法在hibernate.reveng.xml
文件中的每个pojo(表格)的equals方法中放置哪些属性?
答案 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具有相等的哈希码生成器。我们用它来生成这些方法。