为了账号安全,请及时绑定邮箱和手机立即绑定

使用JPA / EJB代码的“传递给持久错误的分离实体”

使用JPA / EJB代码的“传递给持久错误的分离实体”

九州编程 2019-11-13 14:40:27
我正在尝试运行以下基本JPA / EJB代码:public static void main(String[] args){         UserBean user = new UserBean();         user.setId(1);         user.setUserName("name1");         user.setPassword("passwd1");         em.persist(user);  }我收到此错误:javax.ejb.EJBException: javax.persistence.PersistenceException: org.hibernate.PersistentObjectException: detached entity passed to persist: com.JPA.Database有任何想法吗?我在互联网上搜索,发现的原因是:这是由创建对象的方式引起的,即,如果您显式设置ID属性。删除ID分配即可解决此问题。但是我没有得到,我必须修改什么才能使代码正常工作?
查看完整描述

3 回答

?
DIEA

TA贡献1820条经验 获得超2个赞

发生此错误是因为设置了对象的ID。Hibernate区分临时对象和分离对象,并且persist仅适用于临时对象。如果persist断定对象是分离的(因为设置了ID,它将分离),它将返回“分离的对象传递给持久化”错误。您可以在此处和此处找到更多详细信息。


但是,这仅在您指定要自动生成的主键时适用:如果将该字段配置为始终手动设置,则您的代码将起作用。


查看完整回答
反对 回复 2019-11-13
  • 3 回答
  • 0 关注
  • 338 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信