我想使用Seam框架与Hibernate,但不希望使用EJB。我不能使用EJB。

首先的问题是,我可以使用的EntityManager?或者是EntityManager的EJB的一部分?

我如何才能访问我的Seam组件使用Hibernate?

谢谢,菲利普

有帮助吗?

解决方案

通过煤层,可以使用任一休眠或JPA(EntityManager的)。它的工作原理,无论EJB的。如果你愿意,你可以使用普通POJO。

我如何才能访问我的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"/>

<强> TransactionManagement中设置

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

要注入你的Hibernate的Session可以使用

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

请记住煤层适用于任何的MVC框架,尽管它使用Java服务器面临默认。如果你愿意,你可以创造出你自己的MVC功能。看一看 JBoss Seam的政党成员

其他提示

缝网站是一个良好的开端。有一个在框架大量的文档资料。

从FAQ:

  

我一定要使用EJB 3使用   接缝?

     

首先,必须了解是很重要的   该EJB 3包括会话bean,   消息驱动Bean和Java   持久性API。缝迎合所有   三种组分类型,使他们   易于使用,并提供有价值   增强。但是缝有并行   对于非EJB编程支持   模型中,最值得注意的是JavaBeans和   原来的Hibernate。所以选用   使用什么是你的。 Seam的   最大的优势是它提供   跨越两个统一架构   EJB和非EJB模型。这意味着   一旦你学会如何使用一个,你   自动知道如何使用   其他

得到Hibernate会话的另一种方式是使用上的EntityManager委托方法:

Session session = (Session)entityManager.getDelegate();
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top