科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件Generic Data Access Objects 设计模式

Generic Data Access Objects 设计模式

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

普通数据访问对象,这个是Hibernate官方网站上面的一个DAO类的设计模式,基于JDK5.0范型支持,文章地址如下:http://www.hibernate.org/328.html

作者:中国IT实验室 来源:中国IT实验室 2007年8月26日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
@SuppressWarnings("unchecked")  
  •     public T findById(ID id, boolean lock)  
  •     {  
  •         T entity;  
  •         if (lock)  
  •             entity = (T) getSession().load(getPersistentClass(), id, LockMode.UPGRADE);  
  •         else  
  •             entity = findById(id);  
  •   
  •         return entity;  
  •     }  
  •   
  •     @SuppressWarnings("unchecked")  
  •     public List findAll()  
  •     {  
  •         return findByCriteria();  
  •     }  
  •   
  •     @SuppressWarnings("unchecked")  
  •     public List findByExample(T exampleInstance)  
  •     {  
  •         Criteria crit = getSession().createCriteria(getPersistentClass());  
  •         Example example = Example.create(exampleInstance);  
  •         crit.add(example);  
  •         return crit.list();  
  •     }  
  •       
  •     @SuppressWarnings("unchecked")  
  •     public List findByExample(T exampleInstance, String[] excludeProperty)  
  •     {  
  •         Criteria crit = getSession().createCriteria(getPersistentClass());  
  •         Example example = Example.create(exampleInstance);  
  •         for (String exclude : excludeProperty)  
  •         {  
  •             example.excludeProperty(exclude);  
  •         }  
  •         crit.add(example);  
  •         return crit.list();  
  •     }  
  •   
  •     @SuppressWarnings("unchecked")  
  •     public T makePersistent(T entity)  
  •     {  
  •         getSession().saveOrUpdate(entity);  
  •         //getSession().save(entity);  
  •         return entity;  
  •     }  
  •   
  •     public void makeTransient(T entity)  
  •     {  
  •         getSession().delete(entity);  
  •     }  
  •   
  •     @SuppressWarnings("unchecked")  
  •     protected List findByCriteria(Criterion... criterion)  
  •     {  
  •         Criteria crit = getSession().createCriteria(getPersistentClass());  
  •         for (Criterion c : criterion)  
  •         {  
  •             crit.add(c);  
  •         }  
  •         return crit.list();  
  •     }  
  •       
  •     @SuppressWarnings("unchecked")  
  •     /** 
  •      * 增加了排序的功能。 
  •      */  
  •     protected List findByCriteria(Order order,Criterion... criterion)  
  •     {  
  •         Criteria crit = getSession().createCriteria(getPersistentClass());  
  •         for (Criterion c : criterion)  
  •         {  
  •             crit.add(c);  
  •         }  
  •         if(order!=null)  
  •             crit.addOrder(order);  
  •         return crit.list();  
  •     }  
  •       
  •     @SuppressWarnings("unchecked")  
  •     protected List findByCriteria(int firstResult,int rowCount,Order order,Criterion... criterion)  
  •     {  
  •         Criteria crit = getSession().createCriteria(getPersistentClass());  
  •         for (Criterion c : criterion)  
  •         {  
  •             crit.add(c);  
  •         }  
  •         if(order!=null)  
  •             crit.addOrder(order);  
  •         crit.setFirstResult(firstResult);  
  •         crit.setMaxResults(rowCount);  
  •         return crit.list();  
  •     }  
  • }  
      • 评论
      • 分享微博
      • 分享邮件
      邮件订阅

      如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

      重磅专题
      往期文章
      最新文章