我正在尝试运行以下基本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,它将分离),它将返回“分离的对象传递给持久化”错误。您可以在此处和此处找到更多详细信息。
但是,这仅在您指定要自动生成的主键时适用:如果将该字段配置为始终手动设置,则您的代码将起作用。
添加回答
举报
0/150
提交
取消