Hibernate 查询sql结果行数的几种方法
一、前言
这个东西,难度几乎没有,就是繁琐。
一条简单的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结果行数的几种方法的更多相关文章
- hbase统计表的行数的三种方法
		
有些时候需要我们去统计某一个hbase表的行数,由于hbase本身不支持SQL语言,只能通过其他方式实现. 可以通过一下几种方式实现hbase表的行数统计工作: 这里有一张hbase表test:tes ...
 - MS SQL查询所有表行数,获取所有数据库名,表名,字段名
		
1.获取所有数据库名 --SELECT Name FROM Master..SysDatabases ORDER BY Name -- 2.获取所有表名: --SELECT Name NAMEtemp ...
 - 查询执行成本高(查询访问表数据行数多)而导致实例 CPU 使用率高是 MySQL 非常常见的问题
		
MySQL CPU 使用率高的原因和解决方法_产品性能_常见问题_云数据库 RDS 版-阿里云 https://help.aliyun.com/knowledge_detail/51587.html ...
 - SQL Server 优化存储过程的七种方法
		
原文:SQL Server 优化存储过程的七种方法 优化存储过程有很多种方法,下面介绍最常用的7种. 1.使用SET NOCOUNT ON选项 我们使用SELECT语句时,除了返回对应的结果集外,还会 ...
 - 查看sql server数据库连接数的三种方法
		
怎样才能查看sql server数据库连接数呢?下面就将为您介绍三种查看的方法,供您参考,希望能够帮助到您. 1.通过系统的“性能”来查看:开始->管理工具->性能(或者是运行里面输入 m ...
 - MySQL关闭查询缓存(QC)的两种方法
		
MySQL Query Cache 会缓存select 查询,安装时默认是开启的,但是如果对表进行INSERT, UPDATE, DELETE, TRUNCATE, ALTER TABLE, DROP ...
 - Linux下查看线程数的几种方法汇总
		
Linux下查看线程数的几种方法汇总 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Linux下查看某个进程的线程数量 pstree命令以树状图显示进程间的关系(display ...
 - Shell脚本中执行sql语句操作mysql的5种方法【转】
		
对于自动化运维,诸如备份恢复之类的,DBA经常需要将SQL语句封装到shell脚本.本文描述了在Linux环境下mysql数据库中,shell脚本下调用sql语句的几种方法,供大家参考.对于脚本输出的 ...
 - SQL Server遍历表的几种方法  转载
		
SQL Server遍历表的几种方法 阅读目录 使用游标 使用表变量 使用临时表 在数据库开发过程中,我们经常会碰到要遍历数据表的情形,一提到遍历表,我们第一印象可能就想到使用游标,使用游标虽然直观易 ...
 
随机推荐
- TensorFlow-tensorboard可视化
			
运行了很多次出现错误,错误原因在于运行tensorboard时,需要退出python编辑
 - EJB部署规则报错
			
javax.naming.NameNotFoundException: Unable to resolve 'RuleDeployer'. Resolved ''; remaining name 'R ...
 - iOS: 动画更换 UIImageView 的 Image
			
#import <QuartzCore/QuartzCore.h> ... imageView.image = [UIImage imageNamed:(i % ) ? @"3. ...
 - 通过expect免自动输入密码登陆远程服务器
			
通过expect免自动输入密码登陆远程服务器 1.前提必须已经安装expect 2.新建login.sh,文件内容如下 #!/usr/bin/expect -f spawn ssh root@140. ...
 - 备忘录:在alpine上安装kvm
			
原文: https://wiki.alpinelinux.org/wiki/KVM KVM is an open source virtualization solution in a ke ...
 - 【转】细谈Redis和Memcached的区别
			
Redis的作者Salvatore Sanfilippo曾经对这两种基于内存的数据存储系统进行过比较: Redis支持服务器端的数据操作:Redis相比Memcached来说,拥有更多的数据结构和并支 ...
 - Spring学习总结五——SpringIOC容器五
			
一:spring组件扫描 可以使用注解的方式,代替在xml配置文件配置bean,可以减少配置文件的书写,只需要在spring容器配置 文件中配置<context:component-scan b ...
 - JS去除字符串左右两端的空格
			
去除字符串左右两端的空格,在vbscript里面可以轻松地使用 trim.ltrim 或 rtrim,但在js中却没有这3个内置方法,需要手工编写.下面的实现方法是用到了正则表达式,效率不错,并把这三 ...
 - iis6.0 default web site 无法启动
			
按照以往方式打开http://localhost/blog2/index.asp时,意外被提醒出现错误:http 404 无法找到文件.一时感觉不知所措,怎么会出现这样的问题? 近来还碰到了一个问题, ...
 - 已知大小分别为m、n的两个无序数组A、B和一个常数c,求满足A[i]+B[j]=c的所有A[i]和B[j]
			
方法一:枚举法.该方法是最容易.也是最简单的方法,枚举出数组A和数组B中所有的元素对,判断其和是否为c,如果是,则输出. 方法二:排序+二分查找法.首先,对两个数组中长度较大数组,不妨设为A,排序:然 ...