
4、JPA四大状态
JPA的四种状态
- 临时状态:刚创建出来,没有与entityManager发生关系,没有被持久化,不处于entityManager中的对象。
- 持久状态:与entityManager发生关系,已经被持久化,您可以把持久化状态当做实实在在的数据库记录。
- 删除状态:执行remove方法,事务提交之前。
- 游离状态:游离状态就是提交到数据库后,事务commit后实体的状态,应为事务已经提交了,此时实体的属性任你如何改变,也不会同步到数据库,因为游离是没人管的孩子,不在持久化上下文中。
使用代码进行演示,帮助理解:
/**
* 游离状态
*/
@Test
public void testStatus() {
EntityManager entityManager = factory.createEntityManager();
EntityTransaction transaction = entityManager.getTransaction();
transaction.begin();
Customer customer = new Customer(); // 临时状态(瞬时状态)
customer.setId(5l); // 游离状态
customer = entityManager.find(Customer.class,6L); // 持

本文介绍了JPA中实体的四种状态——临时状态、持久状态、删除状态和游离状态,并通过代码示例展示了这些状态之间的转换。此外,还解析了`persist`、`merge`、`refresh`和`remove`等方法的作用以及在不同状态下的行为。最后,进行了缓存测试,强调了一级缓存的效果。
最低0.47元/天 解锁文章
2270

被折叠的 条评论
为什么被折叠?



