0

以下は私のハイバネートマッピングファイルです。私はtoStringとequalsメソッドを生成したいです。 hibernate tool ant taskを使用しています。ハイバネーションツールtoStringとメソッド生成

<class name="org.hibernate.db.Country" table="country" catalog="world"> 
    <meta attribute="use-in-tostring">true</meta> 
    <meta attribute="use-in-equals">true</meta> 
    <id name="code" type="string"> 
     <column name="Code" length="3" /> 
     <generator class="assigned" /> 
    </id>  
</class> 

しかし、私はtoStringまたはequalsメソッドを生成できません。このマッピングファイルに何か問題があります。

私はhibernate-mapping-3.0.dtdとhibernate-reverse-engineering-3.0.dtdファイルの両方が最新のものであることを確認しました。

よろしく、
のVivek S.シャー

+0

うーん、1年前に誰かが同じ問題を抱えていた - 答えはなし:/ http://stackoverflow.com/questions/4945160/how-to-get-hibernate-tools-to-generate-pojos-with -tostring-equals-and-hashcode – Christian

+0

このスレッドは役に立ちますか? http://stackoverflow.com/questions/2523826/hibernate-generate-pojos-with-equals – Christian

答えて

0

あなたはクラスレベルで名=「国」プロパティを逃したので、それは可能性があります。

hiernateマッピングファイルにメタデータを追加することにより、hibernate 4で検証しました。equalsメソッドとhashcodeメソッドが期待どおりに作成されています。

<?xml version="1.0" encoding="utf-8"?> 
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> 
<hibernate-mapping> 
    <class entity-name="com.hrdb.Employee" name="Employee" table="EMPLOYEE" schema="PUBLIC"> 
     <meta attribute="use-in-tostring">true</meta> 
     <meta attribute="use-in-equals">true</meta> 
     <id name="eid" type="integer"> 
      <column name="EID" length="255" not-null="true" precision="19"/> 
      <generator class="identity"/> 
     </id> 
     <property name="firstname" type="string"> 
      <column name="FIRSTNAME" length="255" not-null="false" precision="19"/> 
     </property> 

これらのメタデータは、プロパティレベルで定義することもできます。

<property name="name" type="string"> 
     <meta attribute="use-in-tostring">true</meta> 
     <meta attribute="use-in-equals">true</meta>  
</property> 
関連する問題