EclipseLinkを使用してDBを管理しようとしていますが、深刻な問題が発生しています。
これが私の簡単な方法です
PUEntityManager.getTransaction().begin();
if (!PUEntityManager.contains(evento)) {
PUEntityManager.persist(evento);
} else {
PUEntityManager.merge(evento);
//PUEntityManager.refresh(evento);
}
PUEntityManager.getTransaction().commit();
ご覧のとおり、とても簡単です。DBにエンティティが含まれている場合は、変更をマージしてDBに保存します。それ以外の場合は、新しいエンティティを作成します。
ただし、containsがtrueを返したとしても、重複するプライマリketに関する例外がスローされるため、機能しません。
どうしたの?