у меня есть объект, который содержит два других объекта с отношением @ManyToOne.
@Entity
public class A extends Serializable{
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long id;
@ManyToOne
@Cascade(CascadeType.SAVE_UPDATE)
private B b;
@ManyToOne
@Cascade(CascadeType.SAVE_UPDATE)
private C c;
}
Если я попытаюсь сохранить экземпляр A, у которого есть «B_ID» и «C_ID» другой записи A, я получаю исключение:
org.hibernate.NonUniqueObjectException: другой объект с таким же значением идентификатора уже был связан с сеансом
Например:
A table
| ID | B_ID | C_ID |
| 1 | 1 | null | // this works
| 2 | null | 1 | // this works
| 3 | 1 | x | // this throws the exception
| 4 | x | 1 | // this throws the exception
x=any value of existent B/C_ID
B_ID и C_ID не являются уникальными в моей модели, и (B_ID + C_ID) не является уникальным ограничением!!
Что я могу сделать?
Заранее спасибо.