帮我理解SEAM和Hibernate?

Phi*_*hil 4 hibernate ejb seam seam-conversation seam2

我想将SEAM Framework与Hibernate一起使用但不想使用EJB.我不能使用EJB.

第一个问题是,我可以使用EntityManager吗?或者EntityManager是EJB的一部分?

如何在我的SEAM组件中访问Hibernate?

谢谢,菲利普

Art*_*ald 5

使用Seam,您可以使用Hibernate或JPA(EntityManager).无论EJB如何都可以.如果需要,您可以使用普通POJO.

如何在我的SEAM组件中访问Hibernate?

这里是Hibernate设置WEB-INF/components.xml

SessionFactory设置

<persistence:hibernate-session-factory name="sessionFactory" cfg-resource-name="app.cfg.xml"/>
Run Code Online (Sandbox Code Playgroud)

其中app.cfg.xml放在类路径根目录中

会话设置

<persistence:managed-hibernate-session name="session" hibernate-session-factory="#{sessionFactory}" auto-create="true"/>
Run Code Online (Sandbox Code Playgroud)

TransactionManagement设置

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

要注入您的Hibernate会话,您可以使用

/**
  * Seam lookup Seam enabled components Through its referenced name - session 
  */
private @In Session session;
Run Code Online (Sandbox Code Playgroud)

请记住,Seam适用于任何MVC框架,尽管它默认使用Java Server Faces.如果需要,您甚至可以创建自己的MVC功能.看看JBoss Seam Tuto