Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
帮助我理解SEAM和Hibernate?_Hibernate_Seam_Ejb_Seam Conversation_Seam2 - Fatal编程技术网

帮助我理解SEAM和Hibernate?

帮助我理解SEAM和Hibernate?,hibernate,seam,ejb,seam-conversation,seam2,Hibernate,Seam,Ejb,Seam Conversation,Seam2,我想在Hibernate中使用SEAM框架,但不想使用EJB。我不能使用EJB 第一个问题是,我可以使用EntityManager吗?或者EntityManager是EJB的一部分 如何在SEAM组件中使用Hibernate 谢谢,菲利普,这是一个很好的开始。有很多关于这个框架的文档 从常见问题解答: 首先,理解这一点很重要 EJB3包含会话bean, 消息驱动bean和Java 持久性API。接缝适合所有人 三种组件类型,使它们 易于使用并提供有价值的 增强功能。但接缝具有平行性 对非EJB

我想在Hibernate中使用SEAM框架,但不想使用EJB。我不能使用EJB

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

如何在SEAM组件中使用Hibernate

谢谢,菲利普,这是一个很好的开始。有很多关于这个框架的文档

从常见问题解答:

首先,理解这一点很重要 EJB3包含会话bean, 消息驱动bean和Java 持久性API。接缝适合所有人 三种组件类型,使它们 易于使用并提供有价值的 增强功能。但接缝具有平行性 对非EJB编程的支持 模型,最著名的是JavaBeans和 本地冬眠。所以选择 用什么取决于你。接缝的 最大的优点是它提供了 跨两个领域的统一体系结构 EJB和非EJB模型。这意味着 一旦你学会了如何使用它,你就可以 自动知道如何使用 其他的


对于Seam,您可以使用Hibernate或JPA(EntityManager)。不管EJB如何,它都可以工作。如果需要,可以使用普通POJO

如何在SEAM组件中使用Hibernate

下面是Hibernate设置WEB-INF/components.xml

会话工厂设置

<persistence:hibernate-session-factory name="sessionFactory" cfg-resource-name="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}"/>

请记住,Seam适用于任何MVC框架,尽管默认情况下它使用Java服务器面。如果需要,您甚至可以创建自己的MVC功能。查看

获取Hibernate会话的另一种方法是在EntityManager上使用委托方法:

Session session = (Session)entityManager.getDelegate();

@Phil您可以使用任何您想要的持久性技术。不仅仅是Hibernate或JPA
Session session = (Session)entityManager.getDelegate();