gpt4 book ai didi

java - "detached entity passed to persist error"与 JPA/EJB 代码

转载 作者:IT老高 更新时间:2023-10-28 11:46:12 28 4
gpt4 key购买 nike

我正在尝试运行这个基本的 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

有什么想法吗?

我在网上搜索,我找到的原因是:

This was caused by how you created the objects, i.e. If you set the ID property explicitly. Removing ID assignment fixed it.

但我没弄明白,我需要修改什么才能让代码正常工作?

最佳答案

发生错误是因为设置了对象的 ID。 Hibernate 区分 transient 对象和分离对象,persist 仅适用于 transient 对象。如果 persist 得出的结论是对象已分离(因为设置了 ID),它将返回“已分离对象传递给持久”错误。您可以找到更多详细信息herehere .

但是,这仅适用于如果您已指定要自动生成的主键:如果该字段配置为始终手动设置,那么您的代码可以工作。

关于java - "detached entity passed to persist error"与 JPA/EJB 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2441598/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com