Hibernate version: 2.0.1.4
Database: Oracle 10g
Hi Leute, habe gerade erst mit NHibernat angefangen, und hab so
meine Probleme.
Es funktioniert eigentlich ganz gut, also zumindest Select und Update.
Vielleicht versuche ich da jetzt auch etwas was gar nicht möglich ist,...
... ich bitte euch im hilfe.
Ich habe zwei Tabellen,... Länder und Währungen.
Jedes Land hat seine Währung.
Die PrimaryKeys sind composite key, und da ist glaub ich auch das Problem. Also jede Tabelle hat das Feld KLIENT_ID plus ein weiteres
z.B.: LAND_ID bzw. FKW_ID als PK.
Mapping der Tabelle LAND:
Code:
<class name="Country" table="MDLAND" >
<composite-id name="ID" class="Puresoft.WebShop.BusinessObjects.Country+DomainObjectID">
<key-property type="string" name="ClientId" column="KLIENT_ID" />
<key-property type="string" name="CountryId" column="LAND_ID" />
</composite-id>
<property name="IsDefault" column="IS_DEFAULT" type="System.Boolean" not-null="false" />
<property name="Matchcode" column="MATCHCODE" type="string" not-null="false" />
<property name="Description" column="BEZEICHNUNG" type="string" not-null="false" />
<property name="ISEU" column="IS_EU" type="System.Boolean" not-null="false" />
<many-to-one name="Currency" class="Currency">
<column name="KLIENT_ID"/>
<column name="FWK_ID"/>
</many-to-one>
</class>
Bei einem Insert wird dann leider die Spalte KLIENT_ID doppelt
verwendet, weil sie im PK und in der many-to-one Relation definiert ist.
Ich bekomme dann den Fehler "Ungültiger Index 7"
Gibt es die Möglichkeit zu sagen: Hinter der Property Currency steht die Spalte FWK_ID die den Type Currency hat und ein FK auf die Tabelle
MDFWK mit den Feldern KLIENT_ID und FWK_ID hat.
Ich hoffe ihr versteht was ich meine.
danke
Anbei noch die Fehlermeldung:
SqlString: INSERT INTO MBAB4.MDLAND (IS_DEFAULT, MATCHCODE, BEZEICHNUNG, IS_EU, FWK_ID, KLIENT_ID, LAND_ID) VALUES (?, ?, ?, ?, ?, ?, ?)
(:0) - binding 'False' to parameter: 0
(:0) - binding 'DE-4711' to parameter: 1
(:0) - binding 'Deutschland' to parameter: 2
(:0) - binding 'False' to parameter: 3
(:0) - binding '1' to parameter: 4 => KLIENT_ID
(:0) - binding 'EUR' to parameter: 5
(:0) - binding '1' to parameter: 6 => KLIENT_ID
(:0) - binding 'DE to parameter: 7
System.IndexOutOfRangeException: Ungültiger Index 7 für OracleParameterCollection mit Count=7.