java使用merge()删除JPA中的多对一关系
我有下面的单向多对一映射
@Entity
public class Item implements Serializable {
private Integer id;
private Double amount;
private Country origin;
@ManyToOne(optional=true)
@JoinColumn
public Country getOrigin() {
return this.origin;
}
}
@Entity
public class Country implements Serializable{
private String code;
private String desc;
}
假设该关系是可选的,所以我试图通过使用下面的代码将其更新为null来删除该关系
Country country = null;
//item is detached
item.setOrigin(country);
em.merge(item);
但结果证明,这种关系并没有消除。
但是,如果country
不为null,并且系统可以更新数据库中的关系,则此代码可以正常工作。
如果字段为空,它只需忽略该字段。
有人能指出为了达到我想要的结果可以改变什么设置吗
请注意,我不想删除实体Country
,只想删除它们之间的关系
# 1 楼答案
谢谢你,这是个错误的问题。它确实有效
只是客户端出现了向it提交错误数据的问题