2011-08-10 6 views
2

次のエンティティクラスと1対多の関係でJPA(Hibernate)を使用しています。JPAエンティティから要素を削除するときに、1対多の関係から要素を削除する

Organizationエンティティを永続化すると、それは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は、この場合は所有側である)、そのエンティティをゼロにして更新するようにProyect.organizationを設定する必要があります。

+0

これはデータベースでProyectテーブルがNULLに等しい外部キーで更新されます – greuze

+0

@greuze外部キーをNULLに設定するのは、組織からプロジェクトを削除するときに必要なものですか?外部キーを削除しないと、プロジェクトは依然として組織の一部です。 – Thomas

+0

プロジエクトは組織の一部にすぎません(1つのプロイクトは2つの組織に属しません)。したがって、組織のプロイクトリストからプロイクトを削除すると、データベースからも削除されます。 – greuze

関連する問題