Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Как правильно управлять сессиями в Hibernate Dao? / 2 сообщений из 2, страница 1 из 1
26.06.2007, 19:48:17
    #34621373
Zealander
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно управлять сессиями в Hibernate Dao?
Привет всем ...

Я использовал в Hibernate dao session-per-operation pattern или скорее anti-pattern
В каждом методе открывал и там же закрывал сессию , транзакции использовал только при save или load , а в Hibernate.cfg.hml прописал
<property name="connection.autocommit">true</property>
т.е. транзакции коммитились автоматом

Главный минус всего этого - я "избавил" себя от такой возможности , как lazy-загрузка обьектов

Хочу переделать

Прочитал эту статью
http://www.hibernate.org/328.html
и http://www.hibernate.org/42.html

Все как бы понятно

Скачал caveatemptor , посмотрел как там сделан HibernateUtil и GenericDao

Скопировал HibernateUtil.java в свой проект и в свой GenericDao(от которого наследуются все остальные dao) внес строки

public void setSession(Session session) {
this.session = session;
}

protected Session getSession() {
if (session == null){
session = HibernateUtil.getSessionFactory().getCurrentSession();
}
return session;
}

но не работает , пишет , что нельзя создать createCriteria не начав перед этим транзакцию...

Добавил в каждый метод

Transaction tx = getSession().beginTransaction();
... тело метода
tx.commit();

В итоге коммит транзакции закрывает сессию и я получаю LazyInitializationException.

Прочитал про AOP(перехват методов) там в принципе то же самое делается и я опять буду терять сессию.

Pattern Open session in view на сколько я понял плохо работает с кешом, при работе с обьектами в нескольких request-ах и вообще меня пугает.

Как вы считаете, следует ли использовать этот паттерн?

Вопрос: Как правильно управлять сессиями в Hibernate Dao?

Заранее благодарен за любую помощь...
...
Рейтинг: 0 / 0
27.06.2007, 12:43:12
    #34622771
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно управлять сессиями в Hibernate Dao?
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Как правильно управлять сессиями в Hibernate Dao? / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]