Hibernate不支持一对一或多对一关系的“delete-orphan”级联。我最近发现了这一点,这让我非常头疼。我在我的模型中有几个班,这些班被设计成使得孩子在父母之外没有真实世界的意义。我只有一个父级DAO,而不是一个单独的子级DAO。Hibernate缺乏对一对一和多对一关系的删除孤立支持的变通办法?
这工作:
parent.getChild().setProperty("something");
parentDao.save(parent);
这并不做任何事情:
parent.setChild(null);
parentDao.save(parent);
这是非常不幸的,因为现在我不得不重新考虑我的DAO层和我的几个服务的操作层。
有没有人曾解决此限制在一个优雅的方式?我真的只想关注自己持续的父对象。在这种特殊情况下,除了使Hibernate开心以外,没有理由处理子持久性,只有在删除子项的情况下。
现在看来,这是一年前解决有关删除记录/项目/休眠/浏览/ HHH-4726 – 2011-03-31 14:39:30
@Savannah:它看起来像`删除,orphan`是支持``的情况下的关系是不是`constrained`(见http://docs.jboss.org/hibernate /core/3.6/reference/en-US/html/mapping.html#onetoone4)。我很难向我自己解释这一点,因为一对一总是有一个参照性的关键约束。 –
2011-05-24 17:37:53