分类

对象状态分为三种:瞬时状态,持久化状态,游离|托管状态

瞬时状态

没有id,没有session关联.

 

持久化状态

有id,有session关联

游离|托管状态

有id,没有session关联

使用以下的test类来说明:

public void func1(){
//		读取配置
		Configuration conf = new Configuration().configure();
//		创建session
		SessionFactory sessionFactory = conf.buildSessionFactory();
//		获得事务操作对象,进行CUDR
		Session session = sessionFactory.openSession();
//		控制事务
		Transaction tx = session.beginTransaction();
		//-----------------------
//		创建一个实体类,没有id,没有关联session(瞬时状态)
		Customer c = new Customer();
//		为实体类属性添加值,没有id,没有关联session(瞬时状态)
		c.setCust_name("刘先生");
//		将实体类与session关联,并通过insert语句添加了id(持久化状态)
		session.save(c);
		tx.commit();
//		-----------------------
//		session关闭,持久化的实体类与session失去关联,但是有id(游离状态)
		session.close();
		sessionFactory.close();
		
	}

通过,以上可知.CUDR的C(增加)是将数据从瞬时状态转化为持久化状态,而当close()方法的执行时,由持久化转为游离状态.

那么,如何从游离状态变为持久化状态呢?持久化状态转为瞬时状态呢?看下图!

Hibernate框架学习_对象状态

上图,为CURD都说明了功能,也可以说,我们数据库操作的目的主要就是为了数据持久化.

另外,hibernate为我们提供了saveOrUpdate()方法,无脑将对象持久化

相关文章:

  • 2021-06-01
  • 2021-10-28
  • 2022-12-23
  • 2021-09-23
  • 2021-07-24
猜你喜欢
  • 2022-12-23
  • 2021-04-14
  • 2021-10-31
  • 2022-01-10
  • 2021-04-11
  • 2021-04-12
  • 2021-09-04
相关资源
相似解决方案