Session session = sessionFactory.openSession(); Query query = session.createQuery("from User"); query.setCacheable(true); List users = query.list(); users = query.list(); session.close();这个程序片段会使用一次SQL来查询数据库,第二次直接从Query快取中取得数据:
Hibernate: select user0_.id as id, user0_.name as name0_, user0_.age as age0_ from user user0_使用iterate()方法时不会使用到Query快取,例如:
Session session = sessionFactory.openSession(); Query query = session.createQuery("from User"); query.setCacheable(true); Iterator users = query.iterate(); users = query.iterate(); session.close();这个程序片段会使用两次SQL向数据库查询:
Hibernate: select user0_.id as col_0_0_ from user user0_ Hibernate: select user0_.id as col_0_0_ from user user0_