Helfen Sie mir SEAM und Hibernate zu verstehen?
-
27-09-2019 - |
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
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();