javax.persistence.PersistenceException : org. hibernate.PersistentObjectException : detached entity passed to persist?

标签 java hibernate jpa entitymanager

我有如下所示的员工类别

@Entity
public  class Employee{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
id;
Department dept;
Address add;
@JoinColumn(name = "manager_emp_id", insertable = false, updatable = false)
Manager Employee;
//other fields and their getters and setters

}

当我调用 entityManager.persist(Employee emp) 来坚持时,我收到以下错误

javax.persistence.PersistenceException: org.hibernate.PersistentObjectException: detached entity passed to persist : com.myComp.Employee

我验证了employee.id为null或0。所以我不明白为什么它将Employee视为独立实例而不是 transient 实例?

可能是因为它的某些成员变量(而不是 Employee)的 id 为非零值并且 hibernate 正在尝试持久化吗?如果是 由于有很多成员变量,我可以获得哪个确切的类是分离实例?

最佳答案

猜测但是: manager 可能也是 Employee,当您在新的 Employ 对象上设置 manager 时,很可能您正在使用现有的对象,但您没有从同一个 EnityManger 中检索它(或者没有 Marge 它)。还有异常(exception)。如果没有您的 DAO 代码或其他实体,它只是猜测。

关于javax.persistence.PersistenceException : org. hibernate.PersistentObjectException : detached entity passed to persist?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28626973/

相关文章:

java - @JoinColumn 使用不同的列名称

java - RallyRestAPI 查询 ScopedAttributeDefinition 类型

java - 在 XmlRpc 服务中获取 cookie

Java,缓冲区延迟分配,可按需释放并作为 byte [] 寻址

java - 您是否需要在 Hibernate 表的 @id 列上创建索引

java - 所有双向关系都可以是 LAZY 吗?

java - Hibernate实体中的复合@NaturalId

java - Spring JPA 的@transactional 注释不起作用

java - 在 Java 中使用 MySQL 事件调度程序

java - Hibernate JPA无法在SQL Server中创建索引