Я начал изучать кеш второго уровня Hibernate.Как спящий кеш второго уровня работает внутри?
Я попытался использовать следующий пример кода для понимания кэша второго уровня Hibernate.
Session session = sessionFactory.openSession();
session.beginTransaction();
UserDetails u1 = (UserDetails) session.get(UserDetails.class,1);
session.getTransaction().commit();
session.close();
Session session2=sessionFactory.openSession();
session2.beginTransaction();
UserDetails u2 = (UserDetails) session2.get(UserDetails.class, 1);
session2.getTransaction().commit();
System.out.println(u1==u2);
session2.close();
Я читаю тот же объект UserDetails (с '1' как id) в 2 разных сеансах. Он должен вернуть тот же объект, что и ядро второго уровня.
Но когда я сравниваю оба объекта, он показывает «false».
Может ли кто-нибудь сообщить мне, как спящий кэш второго уровня работает внутри?
Можете вы показать нам карту вашего пользователя? вы включили кеш второго уровня в своей организации? Вы уверены, что кэш попал во второй запрос? – benzonico
Привет, я включил кеш L2 и генерирует только один SQL-запрос. <Имя свойства = "hibernate.cache.use_second_level_cache"> истинный \t \t <имя свойства = "hibernate.cache.region.factory_class"> org.hibernate.cache.ehcache.EhCacheRegionFactory – Naidu