次のテーブルがあります。
- PRODUCT (id_product, name)
- PROPERTY (id_property、名前)
- PRODUCT_PROPERTIES (id_product、id_property)
(すべてのフィールドは null 可能ではありません)
そして、次の休止状態のマッピング:
class Product {
@Id
private Integer id;
@OneToMany(mappedBy="product")
@Cascade({CascadeType.ALL})
private Set<ProductProperties> productProperties = new HashSet<ProductProperties)(0);
(...)
}
「productProperties」フィールドに行を追加または削除して製品クラスを更新すると、PRODUCT_PROPERTIES テーブルの行が正しく更新されます。
問題は、「productProperties」が null または空の場合、Hibernate が ConstraintViolationException をスローすることです。
「productProperties」を空にする必要がある場合があるため、この問題に対する適切な解決策 (@ZeroToMany アノテーションなど) はありますか?