JPA 设计模式系列一 DAO Pattern in JPA
2009-09-24 00:00:00 来源:WEB开发网 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;}
更多精彩
赞助商链接