Pregunta

Quiero utilizar Marco de SEAM con Hibernate, pero no quieren usar EJB. No puedo usar EJB.

La primera pregunta es, puedo usar EntityManager? o es parte de un EntityManager EJB?

¿Cómo puedo obtener acceso al uso de Hibernate en mi componente SEAM?

Gracias, Felipe

¿Fue útil?

Solución

Con costura, puede utilizar cualquiera de Hibernate o JPA (EntityManager). Funciona independientemente de EJB. Puede utilizar POJO normal si lo desea.

¿Cómo puedo obtener acceso al uso de Hibernate en mi componente SEAM?

Aquí va la configuración de Hibernate WEB-INF / components.xml

SessionFactory configuración

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

Cuando app.cfg.xml se coloca en el raíz de la ruta de clase

Sesión configuración

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

TransactionManagement configuración

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

Para inyectar su Session de Hibernate puede utilizar

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

Tenga en cuenta la costura funciona con cualquier framework MVC pesar de que utiliza Java Server Faces por defecto. Puede crear incluso sus propias capacidades MVC si lo desea. Echar un vistazo a JBoss Seam Tuto

Otros consejos

El costura página web es un lugar bueno para comenzar. Hay una gran cantidad de documentación sobre el marco.

Desde el FAQ:

  

¿Tengo que usar EJB 3 para su uso   Costura?

     

En primer lugar, es importante entender   que los granos de EJB 3 de sesión engloba,   Los mensajes de beans, y el de Java   API de persistencia. abastece a todos costura   tres tipos de componentes, haciéndolos   más fácil de usar y proporciona valiosa   mejoras. Pero Seam tiene paralelo   apoyo para la programación no EJB   modelo, más notablemente JavaBeans y   Hibernate nativa. Por lo que la elección de   lo que a su uso depende de usted. costura de   mayor fortaleza es que proporciona   una arquitectura unificada tanto la   EJB EJB y no modelos. Eso significa   una vez que aprender a usar uno,   automáticamente saber cómo utilizar el   otra.

Otra manera de conseguir la sesión de Hibernate es utilizar el método delegado de EntityManager:

Session session = (Session)entityManager.getDelegate();
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top