Помогите мне понять SEAM и Hibernate? - PullRequest
4 голосов
/ 09 августа 2010

Я хочу использовать SEAM Framework с Hibernate, но не хочу использовать EJB.Я не могу использовать EJB.

Первый вопрос: могу ли я использовать EntityManager?или EntityManager является частью EJB?

Как получить доступ к использованию Hibernate в моем компоненте SEAM?

Спасибо, Филипп

Ответы [ 3 ]

5 голосов
/ 09 августа 2010

С помощью Seam вы можете использовать Hibernate или JPA (EntityManager). Это работает независимо от EJB. Вы можете использовать обычный POJO, если хотите.

Как получить доступ к использованию Hibernate в моем компоненте SEAM?

Здесь идут настройки Hibernate WEB-INF / components.xml

SessionFactory настройки

<persistence:hibernate-session-factory name="sessionFactory" cfg-resource-name="app.cfg.xml"/>

Где файл app.cfg.xml находится в корне пути к классам

Сеанс Настройки

<persistence:managed-hibernate-session name="session" hibernate-session-factory="#{sessionFactory}" auto-create="true"/>

Управление транзакциями Настройки

<!--It takes care of calling begin and commit in the underlying Transaction API-->
<!--Here a Hibernate Transaction API-->
<tx:hibernate-transaction session="#{session}"/>

Чтобы добавить сеанс Hibernate, вы можете использовать

/**
  * Seam lookup Seam enabled components Through its referenced name - session 
  */
private @In Session session;

Имейте в виду, что Seam работает с любой средой MVC, хотя по умолчанию он использует Java Server Faces. Вы можете создать даже свои собственные возможности MVC, если хотите. Взгляните на JBoss Seam Tuto

0 голосов
/ 13 марта 2012

Еще один способ получить Hibernate Session - использовать метод делегата в EntityManager:

Session session = (Session)entityManager.getDelegate();
0 голосов
/ 09 августа 2010

Сайт Seam - хорошее место для начала.На фреймворке много документации.

Из FAQ:

Нужно ли использовать EJB 3 для использования Seam?

* 1011Во-первых, важно понимать, что EJB 3 включает в себя сессионные компоненты, компоненты, управляемые сообщениями, и API персистентности Java.Шов обслуживает все три типа компонентов, облегчая их использование и обеспечивая ценные улучшения.Но Seam имеет параллельную поддержку для модели программирования не-EJB, особенно JavaBeans и нативного Hibernate.Таким образом, выбор того, что использовать, зависит от вас.Основное преимущество Seam заключается в том, что он обеспечивает унифицированную архитектуру для моделей EJB и не-EJB.Это означает, что как только вы научитесь использовать один, вы автоматически узнаете, как использовать другой.
...