entityManager.persist (пользователь) -> javax.persistence.EntityExistsException: пользователь @ b3089 уже является постоянным - PullRequest
4 голосов
/ 20 августа 2010
// lookup existing user & set a currently null child entity (ContactInfo)
user.setContactInfo(contactInfo);

// update the user in the datastore with newly created child Entity             
entityManager.persist(user);

Генерирует исключение:

javax.persistence.EntityExistsException: User@b3089 is already persistent

Поскольку пользователь уже существует, есть ли какой-то другой метод, кроме entityManager.persist, который я должен использовать для обновления вместо вставки?

Ответы [ 2 ]

3 голосов
/ 20 августа 2010

Ваш экземпляр user уже загружен в контексте постоянства, просто измените его, и не вызывает любой метод EntityManager, поставщик JPA автоматически обновит базу данных во время сброса или фиксации.

2 голосов
/ 20 августа 2010

А как насчет entityManager.merge(user)?

Также см. здесь .

...