一、前言

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

一条简单的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. Junit结合Spring对Dao层进行单元测试

    关于单元测试,上一次就简单的概念和Mock基础做了,参考:http://60.174.249.204:8888/in/modules/article/view.article.php/74 实际开发过 ...

  2. pi4j,Netbeans中togglebutton跟Jbutton的区别

    一组togglebutton中会始终有一个是按下去的状态 一组commandbutton就全部都始终都是弹起的状态

  3. 带你玩转Eclipse项目转成AndroidStudio项目

    随着Android对Eclipse开发工具的淘汰,越来越多的公司使用AndroidStudio进行相应的Android开发工作.如此,原来用Eclipse开发的项目,怎么导入到AndroidStudi ...

  4. fopen flock fclose 文件用法

    fopen函数是用来打开文件或者连接 若成功,则返回 true.若失败,则返回 false. fopen打开连接是不能直接输出的 使用: <?php $file = fopen("te ...

  5. jquery.form 和MVC4做无刷新上传DEMO

    jquery.form 和MVC4做无刷新上传DEMO HTML: <script src="~/Scripts/jquery-1.10.2.min.js"></ ...

  6. mysql中查看视图的元数据?

    需求描述: 查看视图的元数据的方法. 操作过程: 1.通过查看information_schema数据库下的views表来查看视图的定义语句 mysql> select definer,view ...

  7. docker machine介绍和使用

    https://www.cnblogs.com/sparkdev/p/7044950.html https://www.jianshu.com/p/cc3bb8797d3b

  8. [原]反编译unity3d发布apk

    郑重声明:本教程仅用于学习使用,从事任何商业用途非法行为与作者无关,请知晓! 本文目的:通过教会大家如何破解别人游戏的同时,也希望各位开发者能加强自身游戏的防破解能力! 1:到gitHub下载DisU ...

  9. MTK 预置apk

    一.如何将带源码的APK预置进系统? 1)     在 packages/apps 下面以需要预置的 APK的 名字创建一个新文件夹,以预置一个名为Test的APK 为例 2)     将 Test ...

  10. [Bayes ML] This is Bayesian Machine Learning

    From: http://www.cnblogs.com/bayesianML/p/6377588.html#central_problem You can do it: Dirichlet Proc ...