Les meilleures pratiques pour obtenir de l'EntityManagerFactory
Quelle est la meilleure approche pour obtenir EntityManagerFactory application web(jsp/servlets)?
Est-ce une bonne façon Quand doit-EntityManagerFactory instance de création/d'ouverture?,
ou est-il préférable de l'obtenir à partir d'JNDI, ou quelque chose d'autre?
Vous devez vous connecter pour publier un commentaire.
Ils sont lourds et ils sont censés être dans le champ d'application. Donc, vous avez besoin de les ouvrir au démarrage de l'application et de les fermer sur l'arrêt de l'application.
La façon de le faire dépend de votre conteneur cible. Prend-il en charge les EJB 3.x (Glassfish, JBoss as, etc)? Si oui, alors vous n'avez pas besoin de s'inquiéter à propos de l'ouverture/fermeture (ni sur les transactions) à tous si vous venez de faire l'APC de travail dans les Ejb avec
@PersistenceContext
la manière habituelle:Si votre conteneur cible ne prend pas en charge les Ejb (par exemple, Tomcat, Jetty, etc) et un EJB add-on comme OpenEJB est pas non plus une option pour une raison quelconque, et vous êtes donc manuellement de jongler avec la création de
EntityManager
s (et les transactions) de vous-même, alors votre meilleur pari est unServletContextListener
. Voici un de base kickoff exemple:(remarque: avant de Servlet 3.0, cette classe doit être enregistré par
<listener>
dansweb.xml
au lieu de@WebListener
)Qui peut être utilisé comme:
Persistence
classe?