В файле farmer.hbm.xml вам нужно сделать composite-id
вот так
<composite-id class="FarmerId" mapped="true">
<key-property name="cropid"/>
<key-property name="marketid"/>
</composite-id>
и напишите класс FarmerID
, который реализует Serializable
и переопределяет equals()
и hashCode()
В equals()
вы проверяете, являются ли объекты одинаковыми или имеют одинаковые значения, и возвращаете логическое значение. В hashCode()
вы генерируете хеш-значение и возвращаете его.
@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;
}