繁体   English   中英

休眠:CascadeType.ALL不会保存所有实体,因为OneToOne关系上的PERSIST

[英]Hibernate: CascadeType.ALL not saving all entities because of PERSIST on OneToOne relation

使用以下属性:

@Entity
@Table(name = "b")
public class B extends AbstractEntity implements Serializable, Comparable<B>, Cloneable {
  ...
  @JsonBackReference
  @OneToOne
  @JoinColumn(name ="a_id")
  @Cascade( value = { CascadeType.ALL } )
  private A an;
}

@Entity
@Table(name = "a")
public class A implements Serializable{
  @Id
  @Column(name="a_id")
  @GeneratedValue(strategy = GenerationType.AUTO)
  private Long id;

  @OneToOne(mappedBy = "a", fetch = FetchType.LAZY, orphanRemoval = true)
  private B b;
}

它只保存第一个实体,然后为其他实体返回此错误:

org.springframework.dao.InvalidDataAccessApiUsageException: detached entity passed to persist: A; nested exception is org.hibernate.PersistentObjectException: detached entity passed to persist: A

我对PERSIST不熟悉。 我不知道仅使用CascadeType.MERGE还是CascadeType.SAVE_UPDATE是否可以解决问题,我的意思是它们起作用了,但是我更想知道如何解决持久性问题。

您如何尝试保存或实体? 通过调用“ SaveOrUpdate”方法还是“ Persist”?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM