使用SpringJPA 直接实现count(*)

 更新时间:2021年11月29日 16:37:31   作者:hikeboy  
这篇文章主要介绍了SpringJPA 直接实现count(*),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

SpringJPA 直接实现count(*)

刚开始使用JPA时,基本都依赖@query(SQL)注解通过原生sql来实现

根据编号统计条数:

方法一

@Query(" select count(t) from FollowerInfo t where investUserId = :invUserId")
    Integer findFollowerNumberByInvUserId(@Param("invUserId") Long invUserId);

这种原生的方式,跟直接写SQL没什么区别。虽然能实现功能,但是浪费了JPA的简洁简化代码的设计的优点。

网上看到另外一个方法:

List findAll(Specification spec);

在repository层findAll,然后在service层封装,获取list.size()来处理总条数问题。

这样避免了写SQL语句。

今天看了一下CrudRepository的源码 发现该接口源码里面有一个函数:

方法二

/**
     * Returns the number of entities available.
     * 
     * @return the number of entities
     */
    long count();

于是继承了CrudRepository 写了一个demo:

方法三

Long countByInvestUserId(Long investUserId);

一行代码就全部搞定! 效果跟方法1一样

(spring data jpa)jpa中使用count计数方法

spring data jpa中使用count计数方法很简单

直接在dao层写方法即可

int countByUidAndTenementId(String parentUid, String tenementId);

这样即可根据传入的字段查询即可。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java异常ClassCastException的解决

    Java异常ClassCastException的解决

    这篇文章主要介绍了Java异常ClassCastException的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • spring boot整合quartz实现多个定时任务的方法

    spring boot整合quartz实现多个定时任务的方法

    这篇文章主要介绍了spring boot整合quartz实现多个定时任务的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • @RequestAttribute和@RequestParam注解的区别及说明

    @RequestAttribute和@RequestParam注解的区别及说明

    这篇文章主要介绍了@RequestAttribute和@RequestParam注解的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • 使用spring-data-redis中的Redis事务

    使用spring-data-redis中的Redis事务

    这篇文章主要介绍了使用spring-data-redis中的Redis事务,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • Mybatis-Plus中的selectByMap使用实例

    Mybatis-Plus中的selectByMap使用实例

    Mybatis-Plus来对数据库进行增删改查时,将里面的函数试了个遍,接下来我就将使用selectByMap函数的简单测试实例写出来,方便没有使用过的朋友们快速上手,感兴趣的可以了解一下
    2021-11-11
  • Springboot 集成 SocketIO的示例代码

    Springboot 集成 SocketIO的示例代码

    Socket.IO是实现浏览器与服务器之间实时、双向和基于事件的通信的工具库,本文主要介绍了Springboot 集成 SocketIO的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-10-10
  • 23种设计模式(13)java观察者模式

    23种设计模式(13)java观察者模式

    这篇文章主要为大家详细介绍了23种设计模式之java观察者模式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • Java 抽象类定义与方法实例详解

    Java 抽象类定义与方法实例详解

    这篇文章主要介绍了java 抽象类与接口的区别介绍的相关资料,需要的朋友可以参考下...
    2017-04-04
  • Java多线程实现聊天客户端和服务器

    Java多线程实现聊天客户端和服务器

    这篇文章主要为大家详细介绍了Java多线程聊天客户端和服务器实现代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • Java中的CompletionService批量异步执行详解

    Java中的CompletionService批量异步执行详解

    这篇文章主要介绍了Java中的CompletionService批量异步执行详解,我们知道线程池可以执行异步任务,同时可以通过返回值Future获取返回值,所以异步任务大多数采用ThreadPoolExecutor+Future,需要的朋友可以参考下
    2023-12-12

最新评论