私は次の関係を持つ次のエンティティを持っています:
@Entity
@Table(name = "bpr_user")
public abstract class User {
...
@OneToOne(fetch = FetchType.EAGER, cascade = {CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH, CascadeType.REMOVE})
@JoinColumn(name = "bcard_id", nullable = true)
public BCard getBcard() {
return bcard;
}
}
このようにマージを実行すると、次のようになります。
Adult adult = new Adult();
BCard bcard = createBCard();
adult.setBcard(bcard);
adult = adultDao.merge(adult);
Bcardエンティティは永続化され、IDが与えられますが、saveOrUpdateを使用すると、BcardではなくAdultのみが永続化されます。なぜ??
Adult adult = new Adult();
BCard bcard = createBCard();
adult.setBcard(bcard);
adult = adultDao.saveOrUpdate(adult);