关闭

Hibernate 一级缓存的核心方法

标签: hibernate一级缓存
367人阅读 评论(0) 收藏 举报
分类:
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();
                   }
          }
}

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:110464次
    • 积分:2366
    • 等级:
    • 排名:第17707名
    • 原创:123篇
    • 转载:0篇
    • 译文:0篇
    • 评论:42条
    最新评论