У меня есть объект домена Hibernate, который загружается различными частями приложения. Иногда это выгодно ленивой нагрузке каждой ассоциации, а другим лучше всего загружать все в одном соединении. Я надеюсь, что счастливый компромисс нашел:
Используя выборку партии, Hibernate может загружать несколько неинициализированных прокси-серверов, если к одному прокси-серверу обращаются. Пакетная выборка - это оптимизация ленивой стратегии выборки.
hibernate.default_batch_fetch_size
:
Используя пакетную выборку, Hibernate может загружать несколько неинициализированных прокси если доступ к одному прокси. Пакетная выборка - это оптимизация ленивая стратегия выбора.
Я также вижу:
hibernate.jdbc.fetch_size
:
Значение, отличное от нуля, определяет размер выборки JDBC (вызывает Statement.setFetchSize()).
Хорошо ли Hibernate достаточно умный, чтобы смотреть в кеш второго уровня при выполнении пакетной выборки? i.e Выбираете для первого вызова ассоциации, а затем следующие X-вызовы попадают в кеш? Таким образом, я могу иметь ленивую загрузку, которую я желаю, но также часто попадаю в кеш для более объемных транзакций.
Если все содержимое коллекции уже содержится в кеше, выполнит ли он выборки запросов на доступ к коллекции?
Спасибо.