Question

Je veux utiliser Framework SEAM avec Hibernate, mais ne veulent pas utiliser EJB. Je ne peux pas utiliser EJB.

La première question est, puis-je utiliser EntityManager? ou est EntityManager une partie EJB?

Comment puis-je avoir accès à utiliser Hibernate dans mon composant Seam?

Merci, Philip

Était-ce utile?

La solution

Avec Seam, vous pouvez utiliser Hibernate ou (EntityManager). Il fonctionne indépendamment des EJB. Vous pouvez utiliser POJO simple si vous voulez.

Comment puis-je avoir accès à utiliser Hibernate dans mon composant Seam?

Voici les paramètres va Hibernate WEB-INF / components.xml

SessionFactory Paramètres

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

Où app.cfg.xml est placé dans la racine du classpath

Session Paramètres

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

TransactionManagement Paramètres

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

Pour injecter votre session Hibernate vous pouvez utiliser

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

Gardez à l'esprit Seam fonctionne avec tout framework MVC bien qu'il utilise Java Server Faces par défaut. Vous pouvez même créer vos propres capacités MVC si vous voulez. Jetez un oeil à JBoss Seam Tuto

Autres conseils

Le site Seam est un bon endroit pour commencer. Il y a beaucoup de documentation sur le cadre.

De la FAQ:

  

Dois-je utiliser EJB 3 à utiliser   Seam

     

D'abord, il est important de comprendre   que EJB 3 englobe les haricots de session,   géré par messages haricots et Java   Persistence API. Seam répond à tous   trois types de composants, ce qui les rend   plus facile à utiliser et à fournir de précieux   améliorations. Mais SEAM parallèle   soutien à la programmation non-EJB   modèle, notamment JavaBeans et   Mise en veille prolongée natif. Ainsi, le choix de   ce qu'il faut utiliser est à vous. Seam de   La plus grande force est qu'il fournit   une architecture unifiée à travers à la fois la   EJB et les modèles non-EJB. Cela signifie   une fois que vous apprendrez à utiliser un, vous   automatiquement savoir comment utiliser la   autres.

Une autre façon d'obtenir la session Hibernate est d'utiliser la méthode déléguée sur EntityManager:

Session session = (Session)entityManager.getDelegate();
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top