JPA游离态问题

JPA 事务流程

开启事务

查询出实体(持久态)

3 CRUD操作

提交事务

常见游离态

提交事务后还存在于JVM中的实体

比如存储于session中的实体,在事务提交之后,下一个事务开启之时,它已经是游离 态。这时候再拿出来进行CRUD操作时则是游离态,事务会失败。

调用了JPA的detach方法

这种情况很少发生,几乎没人会去调用entityManager的detach方法。

不是从entityManager中获取的实体

这种情况最容易发生在拿一个实体类去接页面提交的参数的情况下。这时候,是有MVC框架创建的实体,显然与entityManager无关,这种实体明显属于游离态实体,事务会失败。

 

 

你可能感兴趣的:(jpa)