0

以下は、休止状態のツールantタスクを使用してtoStringおよびequalsメソッドを生成したい休止状態のマッピングファイルです。

<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. Shah

4

1 に答える 1

0

クラス レベルで name="country" プロパティを見逃したことが原因である可能性があります。

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>
于 2015-07-14T13:53:37.140 に答える