entityManager.persist(user) -> javax.persistence.EntityExistsException: User@b3089 已经持久化
Posted
技术标签:
【中文标题】entityManager.persist(user) -> javax.persistence.EntityExistsException: User@b3089 已经持久化【英文标题】:entityManager.persist(user) -> javax.persistence.EntityExistsException: User@b3089 is already persistent 【发布时间】:2011-04-01 10:35:38 【问题描述】:// 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
之外,我应该使用其他方法进行更新而不是插入吗?
【问题讨论】:
【参考方案1】:entityManager.merge(user)
呢?
另外,请参阅here。
【讨论】:
【参考方案2】:您的user
实例已经加载到持久化上下文中,只需修改它并不要调用任何EntityManager
方法,JPA 提供程序将在刷新或提交时自动更新数据库.
【讨论】:
以上是关于entityManager.persist(user) -> javax.persistence.EntityExistsException: User@b3089 已经持久化的主要内容,如果未能解决你的问题,请参考以下文章