I'm pretty much new to Spring & Hibernate. In our team, we are building a web application using Struts 2 for the presentation layer, with Spring 3 and Hibernate 3 (with Annotations) underneath. We are still debating on whether to use DAOs or not and Session
's or EntityManager
's for CRUD operations. Setting aside the question of which is better than the other, I ran into another problem using EntityManager
.
My goal is to create an abstract (generic) Service
which will expose 4 basic operations: save, delete, find by ID and find all by class. Other开发者_如何学JAVA services will inherit from this and just implement custom finds or updates (this may change in the future). Problem is, I'm unsure where to put the annotated EntityManager
. I understand that if I call save() in a service from my Action
, i.e. Bob, which inherits the save()
from the Person parent Service
, the system will fail to inject the EntityManager
because the Service Person has not been called and the @PersistenceContext
annotation was not parsed.
Is there a way around this problem? I'd like to use inheritance for my services because that would reduce the amount of code needed for simple operations.
This link may be helpful.
If you end up using Session
objects you'll want to look into HibernateDaoSupport which will function nicely as base class for your generic service class.
精彩评论