Hibernate:如何从“one”侧删除“many”侧的一对多关系中的实体

时间:2013-04-09 11:07:32

标签: java hibernate orm foreign-keys relational-database


我注意到Hibernate不允许以一对多的关系删除实体。 我有两个表(和实体),公司和员工 我想删除一名员工,其代码如下:

..
company.getEmployees().remove(myEmployee); //employees is a collection in Company, it is  mapped as a one-to-many relationship (@OneToMany)
sessionFactory.getCurrentSession().merge(company);

您是否知道如何强行删除?或者至少得到一个例外?

1 个答案:

答案 0 :(得分:2)

是的,默认情况下不会被删除。但您可以将@OneToMany关系映射到orphanRemoval = true attribute,以便自动删除:

@OneToMany(cascade=CascadeType.ALL, orphanRemoval=true) 
public Set<Employee> getEmployees() { return employees; }