Injecting EntityManager Vs. EntityManagerFactory

The pros and cons of injecting EntityManagerFactory vs EntityManager are all spelled out in the Spring docs here, I’m not sure if I can improve on that.

Saying that, there are some points in your question that should be cleared up.

…Spring would create a new instance of
a DAO for every web request…

This is not correct. If your DAO is a Spring bean, then it’s a singleton, unless you configure it otherwise via the scope attribute in the bean definition. Instantiating a DAO for every request would be crazy.

The argument for injecting EMF is that
its a good practice over all its
always good to have a handle to a
factory.

This argument doesn’t really hold water. General good practice says that an object should be injected with the minimum collaborators it needs to do its job.

Leave a Comment