【发布时间】:2015-03-28 20:47:14
【问题描述】:
我正在使用 Play Framework 2.4 和 我收到了这个错误:
[IllegalArgumentException: Removing a detached instance models.Account#8]
In: (...)\models\Account.java
JPA.em().remove(this)
我的代码如下所示:
- ProfileController:http://pastebin.com/embed_iframe.php?i=257PThm4
- 帐户:http://pastebin.com/embed_iframe.php?i=WN1WChni
我也尝试过(正如许多其他类似问题的答案所建议的那样):
JPA.em.remove(JPA.em().merge(this);
或
JPA.em().remove(Account.findById(this.id));
或将@Transactional 添加到delete() 函数中。
但它们都导致
RollbackException: 提交事务时出错
.
更新 - 我的解决方案:
这是两个问题的混合体:
- 我错过了控制台输出中的一行,说存在来自另一个表的约束并且无法删除该帐户。
-
Component.currentAccount()返回的帐户实例是一个分离的实例,我通过以下方式修复了它:Account current = JPA.em().merge(Component.currentAccount())
【问题讨论】:
标签: java jpa playframework persistence