/ / Zuordnung des zusammengesetzten Schlüssels mit beiden Elementen als Fremdschlüssel - Ruhezustand, Frühling

Abbildung des zusammengesetzten Schlüssels mit beiden Elementen als Fremdschlüssel - Winterschlaf

Ich habe eine einfache Spring-Hibernate-Anwendung. Ich habe 3 Klassen, Ernte, Markt und Landwirt mit der Struktur:

class crop
{
private int cropId;
}
class market
{
private int marketId;
}
class farmer
{
private Crop crop;
private Market market;
}

farmer table hat einen zusammengesetzten Schlüssel {cropid, marketid}. Wie ordne ich diese Beziehung nun mit einem zusammengesetzten Schlüsselelement zu cropid und marketid Bezug auf Ernte - und Markttabelle in der .hbm.xml Datei . Ich bin ziemlich neu im Winterschlaf und im Frühling. Irgendwelche Vorschläge werden von großer Hilfe sein !!

Antworten:

0 für die Antwort № 1

In der Datei farmer.hbm.xml müssen Sie eine composite-id so was

<composite-id class="FarmerId" mapped="true">
<key-property name="cropid"/>
<key-property name="marketid"/>
</composite-id>

und schreibe eine Klasse FarmerID das implementiert Serializable und überschreibt equals() und hashCode()

Im equals() Sie testen, ob die Objekte gleich sind oder dieselben Werte haben, und geben einen Booleschen Wert zurück. Im hashCode() Sie generieren einen Hashwert und geben ihn zurück.

@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if ((obj == null) || (obj.getClass() != this.getClass()))
return false;

FarmerID test = (FarmerID) obj;
boolean flagCrop = cropid == test.cropid;
boolean flagMarket = marketid == test.marketid;

return flagCrop && flagMarket;
}

@Override
public int hashCode() {
int hash = 7;
hash = 31 * hash + cropid.hashCode();
hash = 31 * hash + marketid.hashCode();
return hash;
}