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();
}
}
}
Hibernate 一级缓存的核心方法
最新推荐文章于 2017-07-07 09:05:13 发布