How frequently should I create an EntityManager?

岁酱吖の 提交于 2019-11-30 07:59:00

One EM for the whole servlet doesn't sound good. If you're not using container-managed EM's (for example EJB3) then the recommentation is to use an EM for a particular unit of work.

In a web application context your third suggestion (one per HTTP request) sounds good. However this may lead you down a pitfall where you are tying your service layer with your db layer (your service layer shouldn't even be aware of the existance of an EM).

Another approach would be to programatically demark transactions in your DAO and get your DAO to use a new EM for for every method call.

Edit: EMs are cheap to create as opposed to EMFs which have a significant overhead. Using one EMF (which it appears that you do) and lots of EMs is the way to go.

we do one injected entity manager for each slsb, - and the slsb is itself accessed via a delegate, of which there is one per session, which looks up the local/remote interface. Using ejb3.0.

Yes, I agree with NimChimpsky and Qwerky to use EJB3.x when accessing DBs and to use one EM per unit of work.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!