一、前言

这个东西,难度几乎没有,就是繁琐。

一条简单的select count(*) from table_name

都能有多种书写方式。

总是忘,这里记录下。

一 、通过Criteria 查询

查询行数:

        Criteria criteriaCount = getCriteria();
criteriaCount = criteriaCount.add(Restrictions.eq("dispatchTaskId", dispatchTaskId));
criteriaCount.setProjection(Projections.rowCount());
Integer totalCount = ((Long) criteriaCount.uniqueResult()).intValue();

查询列表:

Criteria criteria = getCriteria();
criteria.add(Restrictions.eq("eventId", eventInformationId));
List<EventTaskAssignment> list = criteria.list();

二、通过原生sql查询

查询行数:

        SQLQuery queryCount = getSession().createSQLQuery("SELECT COUNT(*) FROM incidentInformation  WHERE ii.incidentInformationId = :incidentInformationId AND dti.taskstate = :taskstate");

        queryCount.setParameter("incidentInformationId", incidentInformationId);
queryCount.setParameter("taskstate", ETaskStatus.STATUS_INIT.getStatusValue());
int count = ((BigDecimal) queryCount.uniqueResult()).intValue(); return count;

查询列表:

1、返回的item为数据库表对应po

        SQLQuery query = getSession().createSQLQuery(sqlQuery);
query.setParameter("userId", userId); query.addEntity(EventTaskAssignment.class);
List<EventTaskAssignment> items = query.list();

2、返回的item为vo

        SQLQuery query = getSession().createSQLQuery(sqlBuffer.toString());
query.setParameter("eventInformationId", eventInformationId);
query.addScalar("userId", StandardBasicTypes.STRING);
query.addScalar("userName", StandardBasicTypes.STRING);
query.setResultTransformer(Transformers.aliasToBean(UserRoles.class));
List<UserRoles> list = query.list();

三、通过hibernate的查询语言查询

        String countHql = "select count(*) from  a  where and a.approveResult = :approveResult and a.approverId = :approverId";
Query countQuery = getSession().createQuery(countHql);
countQuery.setParameter("approverId", approverId);
int count = ((Long) countQuery.uniqueResult()).intValue();

Hibernate 查询sql结果行数的几种方法的更多相关文章

  1. hbase统计表的行数的三种方法

    有些时候需要我们去统计某一个hbase表的行数,由于hbase本身不支持SQL语言,只能通过其他方式实现. 可以通过一下几种方式实现hbase表的行数统计工作: 这里有一张hbase表test:tes ...

  2. MS SQL查询所有表行数,获取所有数据库名,表名,字段名

    1.获取所有数据库名 --SELECT Name FROM Master..SysDatabases ORDER BY Name -- 2.获取所有表名: --SELECT Name NAMEtemp ...

  3. 查询执行成本高(查询访问表数据行数多)而导致实例 CPU 使用率高是 MySQL 非常常见的问题

    MySQL CPU 使用率高的原因和解决方法_产品性能_常见问题_云数据库 RDS 版-阿里云 https://help.aliyun.com/knowledge_detail/51587.html ...

  4. SQL Server 优化存储过程的七种方法

    原文:SQL Server 优化存储过程的七种方法 优化存储过程有很多种方法,下面介绍最常用的7种. 1.使用SET NOCOUNT ON选项 我们使用SELECT语句时,除了返回对应的结果集外,还会 ...

  5. 查看sql server数据库连接数的三种方法

    怎样才能查看sql server数据库连接数呢?下面就将为您介绍三种查看的方法,供您参考,希望能够帮助到您. 1.通过系统的“性能”来查看:开始->管理工具->性能(或者是运行里面输入 m ...

  6. MySQL关闭查询缓存(QC)的两种方法

    MySQL Query Cache 会缓存select 查询,安装时默认是开启的,但是如果对表进行INSERT, UPDATE, DELETE, TRUNCATE, ALTER TABLE, DROP ...

  7. Linux下查看线程数的几种方法汇总

    Linux下查看线程数的几种方法汇总 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Linux下查看某个进程的线程数量 pstree命令以树状图显示进程间的关系(display ...

  8. Shell脚本中执行sql语句操作mysql的5种方法【转】

    对于自动化运维,诸如备份恢复之类的,DBA经常需要将SQL语句封装到shell脚本.本文描述了在Linux环境下mysql数据库中,shell脚本下调用sql语句的几种方法,供大家参考.对于脚本输出的 ...

  9. SQL Server遍历表的几种方法 转载

    SQL Server遍历表的几种方法 阅读目录 使用游标 使用表变量 使用临时表 在数据库开发过程中,我们经常会碰到要遍历数据表的情形,一提到遍历表,我们第一印象可能就想到使用游标,使用游标虽然直观易 ...

随机推荐

  1. thinkphp中的AJAX返回ajaxReturn()

    系统支持任何的AJAX类库,Action类提供了ajaxReturn方法用于AJAX调用后返回数据给客户端.并且支持JSON.XML和EVAL三种方式给客户端接受数据,通过配置DEFAULT_AJAX ...

  2. 前端Table数据导出Excel使用HSSFWorkbook(Java)

    一.实现原理: 1. 前端查询列表数据并渲染至table(<table>...</table>)表格 2. 表格html代码传输至后台 3. 后台把html转成Excel输出流 ...

  3. Xcode密钥没有备份或者证书过期,出现Valid Signing错误

    密钥没有备份 或者证书过期,和Xcode 4.4中的证书,出现  Valid Signing 错误时   1.生成私有证书,打开钥匙串,钥匙串访问 – 证书助理 – 从证书颁发机构请求证书…,填入iD ...

  4. UNIX环境编程学习笔记(22)——进程管理之system 函数执行命令行字符串

    lienhua342014-10-15 ISO C 定义了 system 函数,用于在程序中执行一个命令字符串.其声明如下, #include <stdlib.h> int system( ...

  5. ApkTool反编译和重新打包

    有时会需要反编译APK,各人有各人的原因,你都懂的…… 准备工作: 下载APKTool,通过下面这个连接进行下载,https://code.google.com/p/android-apktool/d ...

  6. 内省Introspector(反射操作javaBean)

    一:内省是一种特殊的反射,来更方便的操作javaBean对象,通过内省可以获取到类字节码的描述器, 然后解剖每一个字段,获取每个字段的读写方法,即get/set方法的反射,然后获取或者是封装bean的 ...

  7. yum 安装nginx

    1.下载一个rpm包 wget http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noar ...

  8. iis7错误提示An error occurred on the server when processing the URL...

    win7下面运行ASP程序总是出错,原来是站点配置的问题... 问题一:MS Jet引擎改变了临时目录的位置,但是又没有对临时目录的存取权限,导致数据库使用失败(因为sql问题,后改用access数据 ...

  9. JointJS绘制流程图

    摘要: JointJS是一个javascript图表库.你可以使用它制作静态或者动态的图表.关系表.流程图. 效果图:

  10. liunx 时间ntp同步服务器

    1.root 用户下安装 yum install ntp -y 报错如下: 29 Apr 00:25:04 ntpdate[8786]: the NTP socket is in use, exiti ...