@ManyToOne関係を持つ他の2つのエンティティを含むエンティティがあります。
@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)は一意の制約ではありません!!
私に何ができる?
少し早いですがお礼を。