2017-02-18 24 views
0

В Hibernate мы можем иметь кеш сеанса & сеансового уровня.Как узнать, откуда пришел объект, кеш сеанса или кеш sessionFactory

Теперь, если оба включены, и если я получаю сущность, то есть ли способ узнать, откуда взялось предприятие? Является ли это от кеша первого уровня или второго уровня. У нас есть какой-либо метод в Сессии, чтобы это знать?

ответ

1

Если вы знаете идентификатор объекта перед запросом на него, вы можете проверить кэш 2LC, чтобы определить, является ли этот объект, по меньшей мере, кешированным в кеш-памяти SessionFactory. Вы можете сделать это, используя следующий метод:

session.getSessionFactory(). GetCache(). СодержитEntity (EntityClass.class, entityId);

Вы можете задать 1LC путем построения фиктивного экземпляра объекта, установив значение идентификатора, а затем вызвать метод:

session.contains (theEntityInstance);

Поймите, что в обоих этих случаях, если вы опубликовали запрос для данного конкретного объекта с этим идентификатором до вызова любого из этих двух методов, компания будет существовать и в результате этих двух вызовов метода будет всегда be true.

 Смежные вопросы

  • Нет связанных вопросов^_^