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 № 1In 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;
}