【发布时间】:2013-02-04 02:03:09
【问题描述】:
我正在尝试使用 EclipseLink 管理我的数据库,但遇到了一个严重的问题。
这是我的简单方法
PUEntityManager.getTransaction().begin();
if (!PUEntityManager.contains(evento)) {
PUEntityManager.persist(evento);
} else {
PUEntityManager.merge(evento);
//PUEntityManager.refresh(evento);
}
PUEntityManager.getTransaction().commit();
如您所见,这真的很容易。 如果数据库包含实体,我将合并更改以将它们存储在数据库中,否则我只是创建一个新实体。
但它不会起作用,因为它会抛出关于重复主 ket 的异常,即使包含返回 true!
这有什么问题?
【问题讨论】:
-
对象 eventto 来自哪里?它是来自 EntityManager 还是在存在上下文之外创建的?
-
它是在PersitenceContext之外创建的,为什么?
标签: java mysql jpa ejb eclipselink