gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 05:20:32 27 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/10484641/

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