Hibernate的一级缓存见解
Hibernate一级缓存: Hibernate中的一级缓存的理解,一共进行了三次查询。 第一次因为缓存中没有数据所以会去查询数据库,会发出sql语句; 第二次因为在同一个session中,所以可以使用hibernate的一级缓存,所以不发出sql语句(即没有查询数据库); 第三次因为hibernate的一级缓存只能在同一个session中共享数据,所以hibernate到数据库中去查询数据,会发出sql语句。 public void firstCacheOfSession(){ Test test = null; Session session = null; try { session = HibernateSessionFactory.getSession(); session.beginTransaction(); //第一次会发出sql语句,因为没有缓存中没有数据要去数据库中查询 test = (Test) session.get(Test.class, 1); System.out.println("first :"+test.getName()); //第二次不会发出sql语句,因为在同一个session中,可以到hibernate的一级缓存中取数据 test = (Test) session.get(Test.class, 1); System.out