Hallo Leute Ich bin migrieren eine Anwendung mit Hibernate von XML zu JPA-Annotationen. Zur Zeit bin ich fest auf die Zuordnung einer Karte von Objekten mit Compound-ID mit Hilfe von Anmerkungen Dies ist, wie ich es versuche.Mapping einer Kartensammlung mit JPA-Annotationen
class A
{
...
@OneToMany()
@JoinColumn(name="A_ID")
/* B_ID should be the key in this map */
private Map map = new HashMap();
}
class B
{
@EmbeddedId
private CompoundId id;
}
@Embeddable
class CompoundId
{
@Column(name = "A_ID")
String aId;
@Column(name = "B_ID")
long bId
}
Ich habe auch versucht
@OneToMany()
@JoinColumn(name="A_ID", insertable=false, updatable=false)
@MapKeyColumn(name="B_ID")
private Map map = new HashMap();
Caused by: java.sql.SQLException: ORA-00904: "B1_"."ID": invalid identifier
ohne Glück
in XML-Mapping es ähnliche 3.4.0
<map name="map" inverse="true" cascade="all-delete-orphan" lazy="false">
<key>
<column name="A_ID" />
</key>
<map-key type="long" column="B_ID"/>
<one-to-many class="B" />
</map>
Hibernate 3.2.7.ga und Anmerkungen sieht .GA
Danke!
ich dies auch versucht haben, zu sein, aber ich bin immer SQL-Ausnahme: „java.sql. SQLException: ORA-00972: Bezeichner ist zu lang "Was bedeutet, dass etwas in der generierten SQL-Anweisung falsch war, weil die Namen nicht zu lang sind? –
@OneToMany() @JoinColumn (name =" A_ID ", einfügbar = false, updateable = false) @MapKeyColumn (name = "B_ID"), hat funktioniert! und das Problem schien in der Zuordnung der Klasse B zu liegen. Prost –