私は次のクラスを持っています:
@Entity
public class ClassA {
@Column
@Id
private Long id;
@ManyToOne(cascade = javax.persistence.CascadeType.ALL)
@JoinColumn...
private ClassB classB;
public ClassA(ClassB classB){
this.classB = classB;
}
//....
//....
}
@Entity
public class ClassB {
@Column
@Id
private Long id;
@Column(unique=true) //important
private String name;
public ClassB(String name){
this.name = name;
}
//....
//....
}
まだ存在しない場合にのみ保存してClassA
保存したい。ClassB
ClassB
ClassB b = new ClassB("myName");
ClassA a = new ClassA(b);
session.merge(a); // fine
ClassA a2 = new ClassA(b);
session.merge(a2); // problem with b
もちろんClassB
、存在するかどうかを確認してロードすることはできますが、より効率的に実行したいと考えています。