Уже несколько дней я пытаюсь найти правильный способ реализации методов equals() и hashCode() класса составного идентификатора.
Проблема, с которой я сталкиваюсь, когда пытаюсь обновить основной объект (Гара):
- Переполнение стека
- 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
+ "]";
}
}