Eclipselink删除并创建导致唯一约束例外

问题描述:

我有一个实体具有自定义设置的主键。 首先我删除这个实体,然后用相同的主键重新创建这个实体。 这会导致提交/刷新时出现唯一的约束异常。 作为一种解决方法,我在调用delete和create操作之间调用flush。 有没有一种方法可以正确/更好地执行这些操作,即不需要在entitymanager上调用flush?Eclipselink删除并创建导致唯一约束例外

感谢, 曼弗雷德

em.remove(yourEntity)命令,即可预定实体从持久化上下文去除,之后从数据库中,但它并没有生效immediatelly。我可以想象,当你坚持新实体时,从持久化上下文和数据库中删除尚未发生。

您可以尝试使用remove()命令之后的自定义JPQL查询(如"DELETE FROM YourEntity ye WHERE ye.primary1 = :primary1 AND ye.primary2 = :primary2... whatever;")删除此实体。我认为这会立即从持久化上下文中删除实体,但我不确定。试试吧,让我们知道:)