Frage

Ich möchte Seam Framework mit Hibernate verwenden, aber nicht wollen, EJB verwenden. Ich kann nicht EJB verwenden.

Die erste Frage ist, kann ich EntityManager verwenden? oder ist EntityManager ein Teil von EJB?

Wie kann ich Zugang erhalten Hibernate in meiner SEAM-Komponente zu verwenden?

Danke, Philip

War es hilfreich?

Lösung

mit Naht, können Sie entweder Hibernate oder JPA (EntityManager) verwenden. Es funktioniert unabhängig von EJB. Sie können Normal POJO verwenden, wenn Sie möchten.

Wie kann ich Zugang erhalten Hibernate in meiner SEAM-Komponente zu verwenden?

Hier geht Hibernate Einstellungen WEB-INF / components.xml

Session Einstellungen

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

Wo app.cfg.xml platziert wird in der Wurzel des Classpath

Sitzung Einstellungen

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

TransactionManagement Einstellungen

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

Ihre Hibernate Session injizieren können Sie

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

im Auge behalten Seam funktioniert mit jeder MVC-Framework, obwohl es verwendet Java Server Faces standardmäßig. Sie können Ihre eigenen MVC-Funktionen erstellen, auch wenn Sie möchten. Schauen Sie sich auf JBoss Seam Tuto

Andere Tipps

Die Seam Webseite ist ein guter Anfang. Es gibt eine Vielzahl von Dokumentationen auf dem Rahmen.

Aus der FAQ:

  

Muss ich Verwendung EJB 3 verwenden müssen   Seam?

     

Als erstes ist es wichtig zu verstehen,   dass EJB 3 umgreift Session Beans,   Nachricht Driven Beans und Java   Persistence API. Seam bietet allen   drei Komponententypen, so dass sie   einfacher zu bedienen und wertvolle   Erweiterungen. Aber Seam hat parallel   Unterstützung für die nicht-EJB-Programmierung   Modell, vor allem Java Beans und   nativer Hibernate. Deshalb ist die Wahl von   was zu verwenden ist bei Ihnen. Naht des   größte Stärke ist, dass es bietet   eine einheitliche Architektur für sowohl die   EJB und nicht-EJB-Modelle. Das bedeutet   wenn Sie lernen, wie man verwenden, Sie   automatisch wissen, wie das verwenden,   andere.

Eine andere Möglichkeit, die Hibernate Session des Erhaltens ist die delegierte Methode auf EntityManager zu verwenden:

Session session = (Session)entityManager.getDelegate();
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top