.
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);