Я пишу веб-приложение с использованием Hibernate 3.
Итак, через некоторое время я заметил, что что-то было медленным. Поэтому я протестировал hibernate-профайлер и обнаружил, что hibernate сделает неоправданно много вызовов db для простой работы. Причина в том, что я загружаю объект (у этого объекта есть несколько "родителей" ), и у этих "родителей" есть другие "родители". Таким образом, базовый hibernate загружает их все, хотя мне нужен только базовый объект. Хорошо, поэтому я посмотрел на ленивую загрузку. Что привело меня в исключение Lazyloading, потому что у меня есть MVC webapp.
Итак, теперь я немного смущен относительно того, какой у меня лучший подход к этому. В основном все, что мне нужно, - это обновить одно поле объекта. У меня уже есть объектный ключ.
Должен ли я: 1. Копайте в ленивую загрузку. А затем переписать мое приложение для открытого сеанса? 2. Копайте в ленивую загрузку. А затем перепишите мое дао, чтобы быть более конкретным. Например. написав DAO-методы, которые возвратят объекты, созданные только для того, что необходимо для каждого случая использования? Может быть много дополнительных методов... 3. Скрестить спящий режим и сделать это сам? 4. Не могу сейчас думать о других решениях. Любые предложения?
Какова наилучшая практика?