2014-12-06 63 views
3

我與三個表和實體存在多對多關係,並且連接表中包含附加列。在關係的兩側,我設置了cascadeType.All 當我向所有者側添加新對象時,合併方法可以正常工作,但是當我從所有者中移除子對象併合並它時,連接表中相應的行將不會被刪除,我會在那裏重複行。在jpa中多對多合併與連接表中的額外列

所有者實體

@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; 

我不是要求所有刪除我的實體管理的方法和我期待的級聯去除不需要的行自動。那可能嗎?我應該怎麼做才能刪除這些行? 我可以在這裏添加我的代碼,如果它有幫助

回答

0

它只是需要orphanRemoval = true在所有者端。