2

我有以下表格:

  • 产品(id_product,名称)
  • 属性(id_property,名称)
  • PRODUCT_PROPERTIES (id_product, id_property)

(所有字段都不能为空)

以及以下休眠映射:

class Product {
    @Id
    private Integer id;

    @OneToMany(mappedBy="product")
    @Cascade({CascadeType.ALL})
    private Set<ProductProperties> productProperties = new HashSet<ProductProperties)(0);

    (...)    
}

当我通过在“productProperties”字段中添加或删除行来更新产品类时,行会在 PRODUCT_PROPERTIES 表中正确更新。

问题是当“productProperties”为空或为空时,Hibernate 会抛出一个 ConstraintViolationException。

由于我有时需要“productProperties”为空,是否有适当的解决方案来解决这个问题(类似于@ZeroToMany 注释)?

4

1 回答 1

1

Dev Blanked 在评论中给出了答案。这是解决方案:

@OneToMany(mappedBy="foo", orphanRemoval=true)
于 2013-09-19T20:05:20.760 回答