Hibernate を JPA プロバイダーとして使用しており、関数内でさまざまなエンティティのインスタンスを作成しています。1 つのエンティティを呼び出すと、他のエンティティを呼び出すclear()
ことはできませんpersist()
。私のコードはかなり複雑で、ある時点で、一部のメモリを解放するために、エンティティの 1 つのタイプ (他のタイプではなく) に対してflush()
andを呼び出す必要があります。clear()
私のコードの簡略化は次のとおりです。
@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 passed to persist