SpringJPA 直接實現count

2022-09-18 15:39:12 字數 825 閱讀 7274

剛開始使用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 **ailable.

* *@return the number of entities

*/long count();

於是繼承了crudrepository 寫了乙個demo:

方法三:

long countbyinvestuserid(long investuserid);
一行**就全部搞定! 效果跟方法1一樣

pig中對元組不能直接使用聚集函式(如COUNT)

pig中想要使用統計等aggregate函式,必須先group,再進行。而如何設計group也就成了乙個相對麻煩的過程,這給程式設計造成了不小的麻煩。所以pig很強大,但其語法還是有些晦澀,存在很大進步空間。pig和sql不同,在sql中,可以直接對當前表使用aggregate函式,如count,進...

Koa原始碼分析(二) co的實現

koa原始碼分析 一 generator koa原始碼分析 二 co的實現 koa原始碼分析 三 middleware機制的實現 大名鼎鼎的co是什麼?它是tj大神基於es6的一些新特性開發的非同步流程控制庫,基於它所開發的koa被視為未來主流的web框架。koa基於co實現,而co又是使用了es6...

直接排序演算法python實現

一直對演算法不是很上心,今天跟同事聊天,了解到演算法很吃香呀!剛開始學習python,就乙個乙個的演算法來吧!希望有時間能堅持下去!大家別拍磚!我只是留個筆記在這裡。直接排序法 直接選擇排序法的演算法是這樣的,首先選出前n個元素中的最小 大 者,如果這個最小 大 者不是第1個元素,則與第1個元素交換...