有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    谢谢你,这是个错误的问题。它确实有效

    只是客户端出现了向it提交错误数据的问题