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