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);
}
相关推荐
在这个例子中,`findByCriteria`方法接受一个Criteria对象作为参数,而`findByExample`方法使用了Example对象来构造查询,根据实体类对象的属性匹配数据库中的记录。 总结起来,"Spring Hibernate 泛型DAO"的主题...
本文将对 Hibernate 中 Criteria 的用法进行总结,涵盖 Criteria 和 DetachedCriteria 的差异、Criterion 和 Projection 的使用方法等。 Hibernate 设计了 CriteriaSpecification 作为 Criteria 的父接口,下面提供...
使用 DetachedCriteria 可以很方便地根据查询条件来返回查询结果,Spring 框架提供了 `getHibernateTemplate().findByCriteria(detachedCriteria)` 方法来实现这一点。 Criteria 和 DetachedCriteria 均可使用 ...
DetachedCriteria可以通过`forClass(Class)`或`forEntityName(String)`静态方法实例化,之后可以通过Spring的HibernateTemplate与数据库交互。 Criteria和DetachedCriteria都可以利用Criterion和Projection来设置...
可以使用Spring的TransactionTemplate或AOP进行事务的声明式管理。 6. **异常处理**:统一处理Hibernate的异常,比如转换成更友好的业务异常,以提高用户体验。 7. **性能优化**:考虑缓存机制,如二级缓存配置,...
Spring 的框架提供了 getHibernateTemplate().findByCriteria(detachedCriteria) 方法可以很方便地根据 DetachedCriteria 来返回查询结果。 Criteria 和 DetachedCriteria 均可使用 Criterion 和 Projection 设置...
在Spring框架中,HibernateTemplate提供了一种方便的方式来执行DetachedCriteria查询,通过getHibernateTemplate().findByCriteria(detachedCriteria)方法,可以轻松地根据DetachedCriteria实例执行查询并获取结果。...
要创建一个Criteria实例,可以使用`Session`对象的`createCriteria`方法,该方法接收一个参数,即要查询的实体类类型。例如: ```java Criteria crit = sess.createCriteria(Cat.class); ``` 通过设置最大结果数量...
7、简单的单表查询(比如所有条件是and或者or结构),基本实现0sql代码编写(类似HibernateTemplate selectByExample、findByCriteria、find等方法); 8、简单的单表排序支持,支持多个排序条件组合; 9、...
通过理解并熟练掌握`Criteria`、`DetachedCriteria`、`Criterion`和`Projection`等核心概念及其使用方法,可以显著提升数据库操作的效率和代码的可维护性。在实际项目中,结合Spring框架的便利性,开发者能够更加...
在Spring框架中,可以利用 `HibernateTemplate` 的 `findByCriteria` 方法根据 `DetachedCriteria` 查询结果。 示例代码: ```java List<User> users = hibernateTemplate.findByCriteria(criteria); ``` #### 四...
在进行项目开发时,使用Spring与Hibernate作为主要的技术栈,对于数据访问层的设计尤为重要。其中,Criteria API作为Hibernate提供的一个强大的查询工具,为开发者提供了灵活且易于使用的接口来构建复杂的查询逻辑。...
Java SSH 框架,全称为Struts2 + Spring + Hibernate,是Java Web开发中广泛使用的一个集成框架。它结合了Struts2的MVC设计模式、Spring的依赖注入(DI)与面向切面编程(AOP)以及Hibernate的对象关系映射(ORM)...
浅谈DetachedCriteria和Criteria的使用方法 DetachedCriteria和Criteria是Hibernate框架中两个重要的查询工具,用于动态生成SQL语句,进行查询。在Web编程中,DetachedCriteria和Criteria可以解决动态条件查询的...