Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Как правельно связать JSF и Hibernate


Автор: unkis 25.3.2007, 17:35
У меня такой вопрос, есть база данных, с которой надо работать через Hibernate и есть предстовительный уровень(JSF),
так вот как правельно связать Hibernate и JSF.

Я думаю, не правельно же будет в BackingBean от JSF, создовать соеденение с базой данных?

Я предстовляю себе это так, 

Что как только приложение диплоится на веб сервер, должно запускать ся соединение с базой данных, а потом каждый BackingBean использует уже это соединение.

Вообщем какой правельный подход?


Автор: powerOn 25.3.2007, 19:37
Почитай доку про http://java.sun.com/blueprints/corej2eepatterns/Patterns/index.html. Там достаточно много интересно написано об архитектуре J2EE приложений.

Автор: tux 25.3.2007, 19:44
Цитата(unkis @  25.3.2007,  17:35 Найти цитируемый пост)
Я думаю, не правельно же будет в BackingBean от JSF, создовать соеденение с базой данных?

Не знаю, что такое BackingBean, только мне не понятно зачем вообще слою представления знать что-то о базах данных? Hibernate-то тогда зачем? Более того, даже сам Hibernate соединения с базой данных не устанавливает, он использует для этого пул соединений, например. 

Цитата(unkis @  25.3.2007,  17:35 Найти цитируемый пост)
Что как только приложение диплоится на веб сервер, должно запускаться соединение с базой данных, а потом каждый BackingBean использует уже это соединение.

При запуске приложения инициализируется Hibernate, который либо берет соединение с базой данных из пула соединений либо из JNDI либо ему сам пользователь подкладывает какое-то соединение. В первых двух случаях Hibernate инициализируется самостоятельно, используя свои конфигурационные файлы. Ты собираешься третий вариант использовать? Иначе не понятно почему везде фигурирует соединение с базой данных. Тогда не понятно почему инициализацию приложения нужно делать в слое представления. В штатном режиме создается фабрика сессий Hibernate, из которой приложение дергает очередную сессию. Собственно, и это обычно не там делается, а в некотором слое бизнес-логики.

Автор: igor0k 26.3.2007, 19:32
Правильный подход подробно освещается в этом примере:
http://www.hibernate.org/400.html
Он, в общем то, безотносителен JSF будет использовать hibernate, или что то еще.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)