Hibernate: Migration von mapping-Annotationen ist es möglich, zu mischen, hbm und Anmerkungen?
Ich bin derzeit migrieren mein Projekt aus dem Ruhezustand HBM-Zuordnungen Anmerkungen.
Alles war einfach so weit, wie ich behandelt mit kleinen Klassen.
Aber ich habe gleich große Klassen und ich versuche zu mischen, sowohl mapping und Anmerkungen für diese Klasse. Ich habe gelesen, dass dies möglich wurde, mithilfe der hibernate-property "hibernate.mapping.Vorrang" und der Einstellung "Klasse, hbm" anstelle von "hbm, Klasse". (siehe: In Hibernate ist es möglich, verschiedene Annotationen und XML-Konfiguration für eine Entität?)
Ich habe zum Beispiel das folgende Dokument-Klasse:
@Entity
@Table(name="DOCUMENT")
public class Document {
@Column(name="DESCRIPTION")
private String description;
}
und die folgenden Document.hbm.xml Datei:
<?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>
In meinem hibernate.cfg.xml Datei, die ich setzen:
<property name="hibernate.mapping.precedence">class, hbm</property>
<mapping class="Document"/>
<mapping resource="Document.hbm.xml"/>
Mein problem ist, dass:
- wenn ich "Klasse, hbm" für die Rangfolge dann habe ich NUR meine Notizen in der Klasse Dokument
- wenn ich "hbm, Klasse" dann habe ich NUR meine Zuordnungen in der hbm-ressource
Nicht jedermann Ding, wenn es einen Weg gibt, um beide Beschriftungen und HBM-Zuordnungen ?
Dank
Kamran
PS: ich benutze : Hibernate 4.1.4 und Spring-Framework 3.1.1
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nicht mischen Sie für die gleiche Klasse. Am Ende Abschnitt 1.2 hibernate annotations:
Können Sie mischen kommentierte persistenten Klassen und classic hbm.cfg.xml Deklarationen mit dem gleichen SessionFactory. Sie können jedoch nicht erklären, eine Klasse mehrmals (ob kommentiert oder durch hbm.xml). Sie können sich nicht vermischen Konfiguration Strategien (hbm vs. Anmerkungen) in einer entity-Hierarchie entweder.
Zur Erleichterung der migration von der hbm-Dateien auf Anmerkungen, die Konfigurations-Mechanismus erkennt die Zuordnung überschneidungen zwischen annotations-und hbm-Dateien. HBM-Dateien sind dann Vorrang vor annotierten Metadaten auf eine Klasse basis. Sie können die Priorität ändern Verwendung von hibernate.mapping.Vorrang-Eigenschaft. Der Standardwert ist hbm, Klasse, das ändern der Klasse, hbm setzen Prioritäten die annotierten Klassen über hbm-Dateien, wenn ein Konflikt Auftritt.
Mithilfe von Anmerkungen und hbm-Dateien ist das deklarieren einer Klasse zwei mal. Daher wird priorisiert gegenüber den anderen in einer Klasse zu Klasse-basis (Klasse-basis bedeutet, dass für jede Klasse, nur der hbm-Datei oder in den Anmerkungen verwendet werden).