您可以创建一个BaseEntitymanager它提供了基本的CRUD服务和相应的DAO具有延长BaseEntityManager基实现。
BaseEntityManager:
public interface EntityManagerBase<E, K> {
E create(E entity);
void delete(E entity);
E update(E entity);
}
EntityManagerBaseImpl
public abstract class EntityManagerBaseImpl<E, K> implements
EntityManagerBase<E, K> {
private EntityManager entityManager;
private TransactionManager txManager;
private Class<E> type;
public E create(E entity) {
entityManager.persist(entity);
entityManager.flush();
return entity;
}
MyDaoImpl:
public class MyDaoImpl extends EntityManagerBaseImpl<MyDBO, Long> implements MyDao {
//put your implementation of methods
}
由于每个JPA提供者实现的EntityManager与自己的阶级,既然你说你不能扩展的实现,那么你就不能这样做。 –