In my experience @Singleon with Provider<EM> only confuses people. Sooner or later somebody will forget to use Provider<EM> and use EM directly. Accident waiting to happen.
You don't need to use PersistFilter. Cheers Alen On Mar 3, 12:34 am, Owen Berger <[email protected]> wrote: > I am currently working on an application utilizing Guice / JPA / > Hibernate to get info from my database. > > I have read the Guice docs on working with JPA and EntityManagars > here:http://code.google.com/p/google-guice/wiki/JPA, > > But I am having trouble understanding when I should make my DAO > Implementations Singletons. > > I have read this question on StackOverflow regarding Spring's use of > DAO's where it says: > > "Instantiating a DAO for every request would be crazy." > > Does that carry over for DI containers other than Spring? If I am > injecting a DAO Provider into my Servlet and calling when needed, > should the DAO Service Implementation be a Singleton? > > Here is a basic outline of one of my DAO's: > > public DAOImpl implements DAOService { <-- SHOULD THIS BE ANNOTATED > @Singleton? > > @Inject > private EntityManager em; > // OR > // @Inject > // private Provider<EntityManager> emProvider - If it's a > singleton. > > @Inject > DAOImpl(OtherServices os) { > this.otherServices = os; > } > > @Transactional > public MyPersistedObject getPersistedObject(long id) { > MyPersistedObject mpo = em.find(MyPersistedObject.class, id); > return mpo; > } > > } > > And how it's called: > > @Singleton > public MyServlet(HttpRequest req, HttpRequest res) > extends ServletInterfaceOfTheDay { > > private final daoService; // If Singleton > // OR > // private final Provider<DAOService>; If Instanced DAO > > @Inject > MyServlet(DAOService dao) { > this.daoService = dao; > } > > // Gather Information from request here... > > MyPersistedObject mpo = > daoService.getPersistedObject(requestIdInfo); > // OR daoService.get().getPersistedObject(requestIdInfo); > > // Process Response Info here.... > > } > > Thanks for the help. I also posted this on StackOverflow.com if you > want points > there...http://stackoverflow.com/questions/9541046/should-guice-injected-daos... -- You received this message because you are subscribed to the Google Groups "google-guice" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-guice?hl=en.
