在onetomany关系上使用null进行HIbernate更新

时间:2013-08-10 13:17:22

标签: java spring hibernate exception one-to-many

我有以下表格:

  • PRODUCT(id_product,name)
  • PROPERTY(id_property,name)
  • PRODUCT_PROPERTIES(id_product,id_property)

(所有字段都不可为空)

以下的hibernate映射:

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注释)?

1 个答案:

答案 0 :(得分:0)

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

@OneToMany(mappedBy="foo", orphanRemoval=true)