2011-08-10 48 views
2

我正在使用具有一個一對多關係的以下實體類的JPA(Hibernate)。當從JPA實體中刪除元素時,從一對多關係中刪除元素

當我添加元素到列表中,然後堅持組織實體,它將新元素添加到proyects表中,但是當我從列表中刪除元素時,沒有任何反應時持久(或合併),我會像這些元素將從數據庫中刪除。

我也在OneToMany註釋中試過orphanRemoval = true,但它不起作用。

@Entity 
public class Organization {  

    @Id 
    @GeneratedValue 
    public long internalId; 

    @Basic 
    @Column(nullable = false, length = 100) 
    private String name; 

    @OneToMany(cascade = CascadeType.ALL, mappedBy = "organization") 
    private List<Proyect> proyects; 

    // Getters and Setters 
} 

回答

1

您需要設置Proyect.organization爲null和更新該實體,因爲這個屬性是負責數據庫的條目(Proyect在這種情況下擁有方)。

+0

這不起作用,在數據庫中Proyect表使用外鍵等於null更新 – greuze

+0

@greuze將外鍵設置爲null是從組織中刪除項目時想要的內容,不是嗎?如果您不刪除外鍵,該項目仍然是組織的一部分。 – Thomas

+0

這些項目只是組織的一部分(一個項目不能在兩個組織中),所以我希望當我從組織中的項目列表中刪除一個項目時,它也會從數據庫中刪除 – greuze