หลายวันมาแล้วที่ฉันพยายามค้นหาวิธีที่ถูกต้องในการใช้เมธอดเท่ากับ () และ hashCode() ของคลาสคอมโพสิต ID
ปัญหาที่ฉันกำลังเผชิญเมื่อพยายามอัปเดตวัตถุหลัก (Gara) คือ:
- สแต็คโอเวอร์โฟลว์
- DuplicateKeyException: วัตถุอื่นที่มีค่าตัวระบุเดียวกันเชื่อมโยงกับเซสชันแล้ว
- org.hibernate.ObjectNotFoundException: ไม่มีแถวที่มีตัวระบุที่กำหนดอยู่
คลาส Composite-id ของฉัน
@Embeddable
public class GaraAgenziaId implements Serializable {
private static final long serialVersionUID = 4934033367128755763L;
static Logger logger = LoggerFactory.getLogger(GaraAgenziaId.class);
private Gara gara;
private Agenzia agenzia;
@ManyToOne
public Gara getGara() {
return gara;
}
public void setGara(Gara gara) {
this.gara = gara;
}
@ManyToOne
public Agenzia getAgenzia() {
return agenzia;
}
public void setAgenzia(Agenzia agenzia) {
this.agenzia = agenzia;
}
@Override
public String toString() {
return "GaraAgenziaId [Gara=" + gara + ", agenzia=" + agenzia
+ "]";
}
}