Я использую transactions
на EJB2.0
слое и оттуда делаю вызов на DAO
слое, в котором я делаю вызовы гибернации в db.
У меня сейчас проблема в том, что hibernate делает несколько звонков в базу данных, потому что я установил lazy="false"
, сейчас я попытался изменить lazy="true"
, но теперь получаю нашу собственную:
org.hibernate.LazyInitializationException: не удалось инициализировать прокси - сеанс-владелец был закрыт
сообщение об ошибке.
Я провел некоторое исследование по SO
и обнаружил, что решение может быть
<prop key="hibernate.default_batch_fetch_size">30</prop>
<prop key="hibernate.jdbc.fetch_size"></prop>
, и мой вопрос заключается в том, какой будет размер fetch_size по умолчанию, и если это правильный способ решения этой проблемы,
Все, что я хочу сделать, это убедиться, что приложение не выполняет несколько вызовов к базе данных для выполнения всех этих N
запросов, так как в настоящее время навигация между страницами очень трудна и делает приложение очень медленным, как на каждой странице.щелкните, есть N
запросов, которые выполняются в фоновом режиме, и это увеличивает время загрузки приложения.
Обновление
Вот как я настраиваю транзакции:
* @hibernate.class table="SCHEDULE_ENTRY" discriminator-value="task" lazy="true"
* @hibernate.discriminator column="KIND" length="4"
Буду очень признателен за любые предложения по улучшению производительности hibernate.