0
我试图用EclipseLink管理我的数据库,并且出现严重问题。在数据库中插入值或更新现有数据
这里是我的简单的方法
PUEntityManager.getTransaction().begin();
if (!PUEntityManager.contains(evento)) {
PUEntityManager.persist(evento);
} else {
PUEntityManager.merge(evento);
//PUEntityManager.refresh(evento);
}
PUEntityManager.getTransaction().commit();
正如你可以看到它真的很容易。 如果数据库包含实体,我会合并更改以将它们存储在数据库中,否则我只是创建一个新的实体。
但它不起作用,因为它会抛出一个关于重复主键的异常,即使该包含返回true!
它有什么问题?
对象evento来自哪里?它是来自一个EntityManager还是它创建在预置环境之外? – esej 2013-02-19 11:46:49
它是在PersitenceContext之外创建的,为什么? – StepTNT 2013-02-19 11:49:27