現在、プロジェクトを Hibernate HBM Mappings から Annotations に移行しています。少人数のクラスを扱う限り、すべてが簡単でした。しかし、同じ巨大なクラスがあり、このクラスのマッピングと注釈の両方を混在させようとしています。これは、休止状態のプロパティ「hibernate.mapping.precedence」を使用し、「hbm、class」ではなく「class、hbm」に設定することで可能であると読みました。(参照: In Hibernate: is it possible to mix Annotations and XML configuration for an Entity? )
たとえば、次の Document クラスがあります。
@Entity
@Table(name="DOCUMENT")
public class Document {
@Column(name="DESCRIPTION")
private String description;
}
および次の Document.hbm.xml ファイル:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="Document" table="DOCUMENT" >
<id name="id" column="DOCUMENT_ID" type="long" />
</class>
</hibernate-mapping>
hibernate.cfg.xml ファイルに次のように記述しました。
<property name="hibernate.mapping.precedence">class, hbm</property>
<mapping class="Document"/>
<mapping resource="Document.hbm.xml"/>
私の問題は次のとおりです。-優先順位に「クラス、hbm」を配置すると、クラスDocumentに注釈のみが表示されます-「hbm、クラス」を配置すると、hbmリソースにマッピングのみが表示されます
Annotations と HBM マッピングの両方を持つ方法があるかどうかは誰にもわかりませんか?
ありがとう
カムラン
PS: 私は使用します: Hibernate 4.1.4 および Spring Framework 3.1.1