"脱离状态实体"是什么意思?在事务期间如何将托管实体转换为脱离状态实体?
一个脱离的实体是指其状态不会被JPA提供程序反映的实体。
换句话说,如果更改它的状态(例如通过setter方法),这些更改将不会保存到底层数据库中,因为JPA提供程序不必“观察”此类实体。
如果实体E1是托管实体,则可以调用非常合理命名的方法EntityManager#detach(E1)
使其脱离。您还可以使用EntityManager#clear()
来清除整个PersistenceContext并有效地使所有托管实体脱离。