【问题标题】:merge in jpa many-to-many with extra column in join table在 jpa 中与连接表中的额外列进行多对多合并
【发布时间】:2014-12-06 12:35:34
【问题描述】:

我与三个表和实体具有多对多关系,并且连接表包含附加列。在关系的双方我都设置了 cascadeType.All 当我将新对象添加到所有者端时,合并方法可以正常工作,但是当我从所有者中删除子对象并将其合并时,连接表中的相应 行将不会被删除,并且我将在那里有重复的行。

所有者实体

    @OneToMany(cascade=CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "definitionType")
    private List<DefinitionProperty> definitionProperties = new ArrayList<DefinitionProperty>();

    @OneToMany(cascade=CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "property")  
    private List<DefinitionProperty> definitionProperties= new ArrayList<DefinitionProperty>();

映射实体

    @Id
    @JoinColumn(name = "dtid", referencedColumnName = "id")
    @ManyToOne(optional = false)
    private DefinitionType definitionType;

    @Id
    @JoinColumn(name = "prid", referencedColumnName = "id")
    @ManyToOne(optional = false)
    private Property property;

我根本没有调用我的实体管理器的删除方法,我希望级联能够自动删除不需要的行。那可能吗?我应该怎么做才能删除这些行? 如果有帮助,我可以在这里添加我的代码

【问题讨论】:

    标签: java jpa merge many-to-many eclipselink


    【解决方案1】:

    它只需要所有者方面的 orphanRemoval=true。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多