标签:evel 实现 scac app 关系 test todo 维护 optional
@Test
public void test02() {
Session session = HbnUtils.getSession();
try {
session.getTransaction().begin();
Minister minister1 = new Minister("aaa");
Minister minister2 = new Minister("bbb");
Minister minister3 = new Minister("bbb");
Country country = new Country("America");
//Country维护关联关系
country.getMinisters().add(minister1);
country.getMinisters().add(minister2);
country.getMinisters().add(minister3);
session.save(country);
session.getTransaction().commit();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
session.getTransaction().rollback();
}
}
6、证明二级缓存的存在。为了证明二级缓存的存在,我这里是对插入的数据进行同样的3次查询。接着上例在MyTest.java中加入测试二级缓存的方法。
MyTest.java:
@Test
public void test03() {
Session session = HbnUtils.getSession();
try {
session.beginTransaction();
//第一次查询,将id为1的country对象加载到一级缓存session将引发查询(select语句)
Country country1 = session.get(Country.class, 1);
System.out.println("第一次查询:Cname=" + country1.getCname());
//第二次查询:从session(一级缓存)中直接读取到的id为1的Country对象,不会到数据库中查询,不引发查询
Country country2 = session.get(Country.class, 1);
System.out.println("第二次查询:Cname=" + country2.getCname());
//将一级缓存数据清空,session中Country对象也不存在了
session.clear();
//第三次查询,从二级缓存中读取id为1 的Country对象,不会到数据库中查询,不引发查询
Country country3 = session.get(Country.class, 1);
System.out.println("第三次查询:Cname=" + country3.getCname());
session.getTransaction().commit();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
session.getTransaction().rollback();
}
}
执行测试方法后,控制台显示如下结果:
标签:evel 实现 scac app 关系 test todo 维护 optional
原文地址:https://www.cnblogs.com/qikeyishu/p/9203217.html