我使用 Hibernate 作为 JPA 提供程序,在一个函数中,我正在创建不同实体的实例。一旦我调用clear()
一个实体,我就不能调用persist()
其他实体。我的代码相当复杂,有时我不得不为一种类型的实体(而不是其他类型)调用flush()
andclear()
以释放一些内存。
我的代码的简化如下:
@Transactional
void function()
{
EntityType1 entity1 = new EntityType1();
EntityType2 entity2 = new EntityType2();
//...... do operations on entity1
entity1.persist();
entity1.flush();
entity1.clear();
//...... do operations on entity2
entity2.persist();
}
调用时entity2.persist()
出现以下错误:org.springframework.orm.jpa.JpaSystemException: org.hibernate.PersistentObjectException: detached entity passing to persist