Para implementar la capa de servicios y aprovechar su inyección de dependencias vamos a utilizar Spring.
Con Spring 2.5.6, que es la versión soportada por OEPE, para acomodar nuestro desarrollo.
Primero añadimos la Facet de Spring a nuestro proyecto. En el menu contextual del proyecto > Properties… :
Luego generamos las clases ORM. Se generan con el menú contextual del proyecto > Spring > Generate Spring ORM Classes …
Como se observa, sobre las entidades JPA definidas en nuestro paquete de persistencia, se definen las clases de acceso y las de servicio. Os recomiendo echarle un buen vistazo a los paquetes lebrijo.school.services y lebrijo.school.dao.
Lo normal es que debamos limpiar estas clases de métodos, ya que genera todas las posibilidades (remove, persist, findById,…). Por ejemplo, si una entidad de nuestro modelo es una vista, no tendrá sentido mantener un DAO con los métodos persist y remove.
Aquí os dejo el zip del proyecto eclipse tras estas modificaciones.