`

[转] Spring Hibernate findByCriteria(...)方法 使用

阅读更多

Java代码

 

publicList < DispatchTask > findByCriteria
   (DetachedCriteria criteria)
{
   log.debug("findingDispatchTaskinstancebycriteria");
   try
   {
      List < DispatchTask > results = getHibernateTemplate().findByCriteria
         (criteria);
      log.debug("findbycriteriasuccessful,resultsize:" + results.size());
      returnresults;
   }
   catch (RuntimeExceptionre)
   {
      log.error("findbycriteriafailed", re);
      throwre;
   }
}

 

这是Service的片段
Java代码

publicList < DispatchTask > getByQuery(DispatchTaskinstance, DatequeryTime1,
   DatequeryTime2)
{
   StringtaskId = instance.getTaskId();
   StringdeptName = instance.getDeptName();
   Stringlinkman = instance.getLinkman();
   StringplateNum = instance.getPlateNum();
   ShortstatusId = instance.getStatusId();
   DatequeryTime3 = null;
   if (queryTime2 != null)
   {
      queryTime3 = newDate();
      queryTime3.setTime(queryTime2.getTime() + (newLong("86400000")));
   }
   DetachedCriteriacriteria = DetachedCriteria .forClass(DispatchTask.class);
   if (taskId != null && taskId != "")
   {
      criteria.add(Expression.like("taskId", taskId, MatchMode.ANYWHERE));
   }
   if (deptName != null && deptName != "")
   {
      criteria.add(Expression.like("deptName", deptName, MatchMode.ANYWHERE));
   }
   if (linkman != null && linkman != "")
   {
      criteria.add(Expression .like("linkman", linkman, MatchMode.ANYWHERE));
   }
   if (plateNum != null && plateNum != "")
   {
      criteria.add(Expression.like("plateNum", plateNum, MatchMode.ANYWHERE));
   }
   if (statusId != null && statusId != 999)
   {
      criteria.add(Expression.eq("statusId", statusId));
   }
   if (queryTime1 != null)
   {
      if (queryTime2 != null)
      {
         if (queryTime1.getTime() <= queryTime2.getTime())
         {
            criteria.add(Expression.between("dispatchDate", queryTime1,
               queryTime3));
         }
      }
      else
      {
         criteria.add(Expression.ge("dispatchDate", queryTime1));
      }
   }
}
else
{
   if (queryTime2 != null)
   {
      criteria.add(Expression.le("dispatchDate", queryTime3));
   }
}
returndispatchTaskDAO.findByCriteria(criteria);
}

分享到:
评论

相关推荐

    spring hibernate 泛型DAO

    在这个例子中,`findByCriteria`方法接受一个Criteria对象作为参数,而`findByExample`方法使用了Example对象来构造查询,根据实体类对象的属性匹配数据库中的记录。 总结起来,"Spring Hibernate 泛型DAO"的主题...

    Hibernate中Criteria的完整用法.docx

    本文将对 Hibernate 中 Criteria 的用法进行总结,涵盖 Criteria 和 DetachedCriteria 的差异、Criterion 和 Projection 的使用方法等。 Hibernate 设计了 CriteriaSpecification 作为 Criteria 的父接口,下面提供...

    Hibernate - DetachedCriteria 的完整用法

    使用 DetachedCriteria 可以很方便地根据查询条件来返回查询结果,Spring 框架提供了 `getHibernateTemplate().findByCriteria(detachedCriteria)` 方法来实现这一点。 Criteria 和 DetachedCriteria 均可使用 ...

    Hibernate的Criteria用法总结

    DetachedCriteria可以通过`forClass(Class)`或`forEntityName(String)`静态方法实例化,之后可以通过Spring的HibernateTemplate与数据库交互。 Criteria和DetachedCriteria都可以利用Criterion和Projection来设置...

    本人写的Hibernate超级通用DAO

    可以使用Spring的TransactionTemplate或AOP进行事务的声明式管理。 6. **异常处理**:统一处理Hibernate的异常,比如转换成更友好的业务异常,以提高用户体验。 7. **性能优化**:考虑缓存机制,如二级缓存配置,...

    Hibernate中Criteria的完整用法

    Spring 的框架提供了 getHibernateTemplate().findByCriteria(detachedCriteria) 方法可以很方便地根据 DetachedCriteria 来返回查询结果。 Criteria 和 DetachedCriteria 均可使用 Criterion 和 Projection 设置...

    Hibernate中Criteria的用法详解

    在Spring框架中,HibernateTemplate提供了一种方便的方式来执行DetachedCriteria查询,通过getHibernateTemplate().findByCriteria(detachedCriteria)方法,可以轻松地根据DetachedCriteria实例执行查询并获取结果。...

    hibernate-Criteria

    要创建一个Criteria实例,可以使用`Session`对象的`createCriteria`方法,该方法接收一个参数,即要查询的实体类类型。例如: ```java Criteria crit = sess.createCriteria(Cat.class); ``` 通过设置最大结果数量...

    基于SpringJDBC的轻量级ORM框架sborm.zip

    7、简单的单表查询(比如所有条件是and或者or结构),基本实现0sql代码编写(类似HibernateTemplate selectByExample、findByCriteria、find等方法); 8、简单的单表排序支持,支持多个排序条件组合; 9、...

    Criteria的完整用法.pdf

    通过理解并熟练掌握`Criteria`、`DetachedCriteria`、`Criterion`和`Projection`等核心概念及其使用方法,可以显著提升数据库操作的效率和代码的可维护性。在实际项目中,结合Spring框架的便利性,开发者能够更加...

    DetachedCriteria Criteria 使用方法

    在Spring框架中,可以利用 `HibernateTemplate` 的 `findByCriteria` 方法根据 `DetachedCriteria` 查询结果。 示例代码: ```java List&lt;User&gt; users = hibernateTemplate.findByCriteria(criteria); ``` #### 四...

    Criteria详解

    在进行项目开发时,使用Spring与Hibernate作为主要的技术栈,对于数据访问层的设计尤为重要。其中,Criteria API作为Hibernate提供的一个强大的查询工具,为开发者提供了灵活且易于使用的接口来构建复杂的查询逻辑。...

    java sh框架做的分页 功能齐全完善

    Java SSH 框架,全称为Struts2 + Spring + Hibernate,是Java Web开发中广泛使用的一个集成框架。它结合了Struts2的MVC设计模式、Spring的依赖注入(DI)与面向切面编程(AOP)以及Hibernate的对象关系映射(ORM)...

    浅谈DetachedCriteria和Criteria的使用方法(必看)

    浅谈DetachedCriteria和Criteria的使用方法 DetachedCriteria和Criteria是Hibernate框架中两个重要的查询工具,用于动态生成SQL语句,进行查询。在Web编程中,DetachedCriteria和Criteria可以解决动态条件查询的...

Global site tag (gtag.js) - Google Analytics