Hibernate 一级缓存的核心方法

package star.july.c_session;
import org.hibernate.Hibernate;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.junit.Test;
import star.july.a_sql.Employee;
import star.july.util.HibernateUtil;
public class Demo {
          
          @Test
          public void test(){
                   Session session = HibernateUtil.getSession();
                   Transaction ts = session.getTransaction();
                   try{
                             ts.begin();
                             //临时状态:new语句
                             Employee s = new Employee();
                             s.setName("张亮");
                             
                             session.save(s);                //s是处于持久状态
                             
                             session.flush();
                             //游离状态
//                          evict(Object):消除一级缓存中的特定对象
//                          clear():消除一级缓存中的所有对象
                             session.evict(s);
                             
                             s.setName("张丽莉");
                             //最后添加的数据是:张亮
                             ts.commit();
                             
                             HibernateUtil.close(session);
                   }catch(Exception e ){
                             e.printStackTrace();
                             ts.rollback();
                   }
          }
          
          
          
          
          @Test
          public void test2(){
                   Session session = HibernateUtil.getSession();
                   Transaction ts = session.getTransaction();
                   try{
                             ts.begin();
                             //临时状态:new语句
                             Employee s = new Employee();
                             session.save(s);                //s是处于持久状态
                   
                             
                             //持久化状态
                             //load(),get(),Query list(),Query.uniqueResult()
                             Employee emp = (Employee)session.get(Employee.class, 2);
                             emp.setName("张亮");
                             System.out.println(emp);
                             
                             
                             session.flush();
                             
                             //游离状态
//                          evict(Object):消除一级缓存中的特定对象
//                          clear():消除一级缓存中的所有对象
                             session.evict(emp);
                             session.clear();
                             System.out.println(emp+"test");
                             
                             ts.commit();
                   }catch(Exception e ){
                             e.printStackTrace();
                             ts.rollback();
                   }
          }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值