Ich habe solche DB-Beziehung.
Viele-zu-viele Hibernate XML-Konfiguration
Ich möchte viele-zu-viele Beziehung haben. Zwischen PLAYER
und PRIVILEGE
. Könnten Sie mir bitte helfen, meine .xml-Konfigurationen zu reparieren.
Erwartetes Ergebnis: Ich möchte ausführen können: String hql = "from Player as p right outer join p.privilages as priv";
Aktuell: So bekomme ich weit:
org.hibernate.MappingException: Fremdschlüssel (FK8CD18EE134F64423: SPIELER [ID])) muss dieselbe Anzahl von Spalten haben wie der referenzierte Primärschlüssel (PRIVILAGE [ID, PRIVILAGE])
<hibernate-mapping>
<class name="model.Privilage" table="PRIVILAGE">
<id name="id" type="int" >
<column name="ID" precision="5" scale="0"/>
<generator class="increment"/>
</id>
<set name="players" table="PLAYER"
inverse="false" lazy="true" fetch="select" cascade="all" >
<key>
<column name="ID"/>
</key>
<many-to-many entity-name="model.Player">
<column name="ID" not-null="true" />
</many-to-many>
</set>
<property name="privilage" type="string">
<column name="PRIVILAGE" length="20" not-null="true" />
</property>
</class>
</hibernate-mapping>
und
<class name="model.Player" table="PLAYER">
<id name="playerId" type="int" >
<column name="ID" precision="5" scale="0"/>
<generator class="sequence">
<param name="sequence">PLAYER_SEQ</param>
</generator>
</id>
<set name="privilages" table="PRIVILAGE"
inverse="false" lazy="true" fetch="select" cascade="all" >
<key>
<column name="ID"/>
</key>
<many-to-many entity-name="model.Privilage">
<column name="PRIVILAGE" not-null="true" />
</many-to-many>
</set>
<!-- ... -->
</class>
Ich sehe 'inverse = false' für beide Entitäten im-Tag. Nur einer von ihnen muss falsch sein und andere sollten wahr sein. –