Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate saveAndUpdate不会持久化关系,而merge会持久化关系_Hibernate - Fatal编程技术网

Hibernate saveAndUpdate不会持久化关系,而merge会持久化关系

Hibernate saveAndUpdate不会持久化关系,而merge会持久化关系,hibernate,Hibernate,我拥有以下实体,关系如下: @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", nu

我拥有以下实体,关系如下:

@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;
   }
}
当我像这样运行merge时:

    Adult adult = new Adult();
    BCard bcard = createBCard();
    adult.setBcard(bcard);
    adult = adultDao.merge(adult);
Bcard实体将被持久化并提供一个id,但如果我使用saveOrUpdate,则仅成人将被持久化,而不是Bcard。为什么

    Adult adult = new Adult();
    BCard bcard = createBCard();
    adult.setBcard(bcard);
    adult = adultDao.saveOrUpdate(adult);

因为您已经为合并配置了级联,但没有为保存更新配置级联

使用添加用于保存更新的级联