028:coreAPI_对象三种状态

2、三种状态的区分关键在于:

  a)、有没有ID

  b)、ID在数据库中有没有

  c)、在内存中有没有(session缓存)

 3、三种状态:

a)、transient:内存中一个对象,没有ID,缓存中也没有

b)、persistent:内存中有,缓存中有,数据库在ID

c)、detached:内存有缓存没有数据库有ID

Transient意思是刚刚new 出来,没有设ID,当调用了save或saveOrUpdate(),它会转成另外一个状态叫persistent,persistent状态是有ID的,一半persist(evict(),close(),clear())这时就变成Detached

 Transient状态:

		t.setName("t1");
 		t.setTitle("middle");
		t.setBirthDate(new Date());

Persistent状态:

Session session = sessionFactory.getCurrentSession();

		session.beginTransaction();
		session.save(t);


************************

@Test
	public void testSaveWith3State() {

		Teacher t = new Teacher();

		t.setName("t1");
		t.setTitle("middle");
		t.setBirthDate(new Date());

		Session session = sessionFactory.getCurrentSession();
		session.beginTransaction();
		session.save(t);
		System.out.println(t.getId());
		session.getTransaction().commit();

		System.out.println(t.getId());
	}



 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值