使用离线查询DetachedCriteria时候需要注意的一件事

今天在敲的时候,遇到一个bug:Property 'cust_name' not found on type java.lang.Long。在项目的jsp页面引用了“cust_name”,说找不到这个属性,开始一直以为是jsp哪里出错了,浪费半天时间也没找到原因,后来在代码里面找,发现在dao里调用的find()(查询所有方法)返回值是一个数字,而不是我需要的集合,并且这个数字是dao.find()上面一个方法的返回结果。想想可能是我方法里调用的DetachedCriteria的api不够属性,导致出错了,再网上查资料,返现调用一次DetachedCriteria的聚合函数方法后,需要把DetachedCriteria清空一下。代码:dc.setProjection(null);

原dao里的两个方法如下:
public Integer getCustomerNum(DetachedCriteria dc) {
dc.setProjection(Projections.rowCount());//设置查询的聚合函数
List<Long> list = (List<Long>) getHibernateTemplate().findByCriteria(dc);

    //清空dc中的聚合函数,不然影响下次调用dc查询
    dc.setProjection(null);
    if(list!=null && list.size()>0){
        return list.get(0).intValue();
    }else{
        return null;
    }
}

public List<Customer> getCustomerList(final DetachedCriteria dc,
        Integer start, Integer pageSize) {
    List<Customer> list = (List<Customer>) getHibernateTemplate().findByCriteria(dc, start, pageSize);
    return list;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,839评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,269评论 19 139
  • 一. Java基础部分.................................................
    wy_sure阅读 3,874评论 0 11
  • 现在各种知识都有人感悟、整理,形成体系;各种知识又都错综盘杂,互相参照,我中有你、你中有他;似乎盘节成一棵大树,但...
    江苏刘志祥阅读 790评论 0 2
  • 风冽天寒秋渐老,踏破山水隔。 红尘惹乡愁,未改乡音,却作还乡客。 近乡血热情愈迫,春红充诗册。 趁兴引高歌,沉醉花...
    聂丽阅读 162评论 0 0