W tej chwili przenoszę swój projekt z odwzorowań Hibernate HBM na adnotacje. Wszystko było łatwe, jeśli chodzi o małe klasy. Ale mam te same wielkie klasy i staram się połączyć zarówno mapowanie, jak i adnotacje dla tej klasy. Przeczytałem, że było to możliwe dzięki użyciu właściwości hibernacji "hibernate.mapping.precedence" i ustawieniu jej na "class, hbm" zamiast "hbm, class". (Patrz: In Hibernate: is it possible to mix Annotations and XML configuration for an Entity?)Hibernate: Migracja z mapowania do adnotacji - czy można mieszać hbm i adnotację?
Na przykład mam następujące klasy dokumentu:
@Entity
@Table(name="DOCUMENT")
public class Document {
@Column(name="DESCRIPTION")
private String description;
}
i następujący plik 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>
W moim pliku hibernate.cfg.xml Włożyłem:
<property name="hibernate.mapping.precedence">class, hbm</property>
<mapping class="Document"/>
<mapping resource="Document.hbm.xml"/>
Moim problemem jest to, że: - jeśli kładę „klasę, HBM "dla pierwszeństwa mam TYLKO moje adnotacje w klasie Dokument - jeśli wstawię" hbm, klasa "to mam TYLKO moje mapowania w hsb ressource
Czy ktoś knwo, jeśli istnieje sposób, aby mieć dwie adnotacje i Mapowania HBM?
Dzięki
Kamran
PS: używam: 4.1.4 Hibernate i Spring Framework 3.1.1
Drogi Pablo, bardzo dziękuję za wyjaśnienia. ! – marcam
Stary bardzo pomocny –