WEB开发网
开发学院软件开发Java JPA 设计模式系列一 DAO Pattern in JPA 阅读

JPA 设计模式系列一 DAO Pattern in JPA

 2009-09-24 00:00:00 来源:WEB开发网   
核心提示: DAO 接口首先我们定义一个泛化的DAO接口,包括最常用的方法,JPA 设计模式系列一 DAO Pattern in JPA(3),比如:publicinterfaceDao<K,E>{voidpersist(Eentity);voidremove(Eentity);EfindByI

DAO 接口

首先我们定义一个泛化的DAO接口,包括最常用的方法,比如:

public interface Dao<K, E> {
      void persist(E entity);
      void remove(E entity);
      E findById(K id);
}

K ,E为泛型,你可以加其他的方法比如:List findAll().

然后我们定义一个自接口,实现特殊的方法,比如,我们想查找一定条件的Order信息:

public interface OrderDao extends Dao<Integer, Order> {
        List<Order> findOrdersSubmittedSince(Date date);
}

基本DAO的实现

第三步就是创建基本的JPA DAO的实现。它实现了Dao接口。

public abstract class JpaDao<K, E> implements Dao<K, E> {
        protected Class<E> entityClass;
 
        @PersistenceContext
        protected EntityManager entityManager;
 
        public JpaDao() {
               ParameterizedType genericSuperclass = (ParameterizedType) getClass().getGenericSuperclass();
               this.entityClass = (Class<E>) genericSuperclass.getActualTypeArguments()[1];
        }
 
        public void persist(E entity) { entityManager.persist(entity); }
 
        public void remove(E entity) { entityManager.remove(entity); }
 
        public E findById(K id) { return entityManager.find(entityClass, id); }

上一页  1 2 3 4  下一页

Tags:JPA 设计模式 系列

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接