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

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

 2009-09-24 00:00:00 来源:WEB开发网   
核心提示: publicList<ChangePlan>findExecutingChangePlans(){Queryquery=entityManager.createQuery("SELECTplanFROMChangePlanplanwhereplan.state='E

    public List<ChangePlan> findExecutingChangePlans() {
      Query query = entityManager.createQuery(
            "SELECT plan FROM ChangePlan plan where plan.state = 'EXECUTING'");
      return (List<ChangePlan>) query.getResultList();
}

然后,但你决定使用DAO时,如何正确合理的使用它呢? 在Spring的JpaTemplate的JavaDoc中建议,不要使用类似特殊的类,类似JpaDaoSupport。 而是你应该自己通过@PersistenceContext注释获取EntityManger来维护你的DAO。这种方式可以在EJB3的容器中工作,并且如果你在Spring的context 加入PersistenceAnnotationBeanpostProcessor Bean的话,在Spring2.0里也是没有问题的。

类型安全且泛化的DAO pattern

因为每一个DAO都包含一些相同的逻辑,所以我们应该抽取这些逻辑放入到父类中。

实体类

比如,我们想实例化OrderClass:

@Entity
@Table(name = "ORDERS")
public class Order {
        @Id
        @GeneratedValue
        private int id;
        private String customerName;
        private Date date;
 
        public int getId() { return id; }
        public void setId(int id) { this.id = id; }
 
        public String getCustomerName() { return customerName; }
        public void setCustomerName(String customerName) { this.customerName = customerName; }
 
        public Date getDate() { return date; }
        public void setDate(Date date) { this.date = date;}

上一页  1 2 3 4  下一页

Tags:JPA 设计模式 系列

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