Вопрос

Я хочу использовать рамки для шов с помощью гибернации, но не хочу использовать EJB. Я не могу использовать EJB.

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

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

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

Это было полезно?

Решение

С шов, вы можете использовать Hibernate или JPA (EntityManager). Работает независимо от EJB. Вы можете использовать обычную POJO, если хотите.

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

Здесь идет настроек гибернации Web-inf / portent.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;

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

Другие советы

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

От FAQ:

Должен ли я использовать EJB 3, чтобы использовать шов?

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

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

Session session = (Session)entityManager.getDelegate();
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top