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