使用SpringJPA?直接實(shí)現(xiàn)count(*)
SpringJPA 直接實(shí)現(xiàn)count(*)
剛開始使用JPA時(shí),基本都依賴@query(SQL)注解通過原生sql來實(shí)現(xiàn)
根據(jù)編號(hào)統(tǒng)計(jì)條數(shù):
方法一
@Query(" select count(t) from FollowerInfo t where investUserId = :invUserId") Integer findFollowerNumberByInvUserId(@Param("invUserId") Long invUserId);
這種原生的方式,跟直接寫SQL沒什么區(qū)別。雖然能實(shí)現(xiàn)功能,但是浪費(fèi)了JPA的簡潔簡化代碼的設(shè)計(jì)的優(yōu)點(diǎn)。
網(wǎng)上看到另外一個(gè)方法:
List findAll(Specification spec);
在repository層findAll,然后在service層封裝,獲取list.size()來處理總條數(shù)問題。
這樣避免了寫SQL語句。
今天看了一下CrudRepository的源碼 發(fā)現(xiàn)該接口源碼里面有一個(gè)函數(shù):
方法二
/** * Returns the number of entities available. * * @return the number of entities */ long count();
于是繼承了CrudRepository 寫了一個(gè)demo:
方法三
Long countByInvestUserId(Long investUserId);
一行代碼就全部搞定! 效果跟方法1一樣
(spring data jpa)jpa中使用count計(jì)數(shù)方法
spring data jpa中使用count計(jì)數(shù)方法很簡單
直接在dao層寫方法即可
int countByUidAndTenementId(String parentUid, String tenementId);
這樣即可根據(jù)傳入的字段查詢即可。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java遞歸運(yùn)行的機(jī)制:遞歸的微觀解讀圖文分析
這篇文章主要介紹了Java遞歸運(yùn)行的機(jī)制:遞歸的微觀解讀,結(jié)合圖文形式詳細(xì)分析了java遞歸運(yùn)行的原理、機(jī)制與相關(guān)注意事項(xiàng),需要的朋友可以參考下2020-03-03java實(shí)現(xiàn)短地址服務(wù)的方法(附代碼)
大多數(shù)情況下URL太長,字符多,不便于發(fā)布復(fù)制和存儲(chǔ),本文就介紹了通過java實(shí)現(xiàn)短地址服務(wù),減少了許多使用太長URL帶來的不便,需要的朋友可以參考下2015-07-07Java+opencv3.2.0實(shí)現(xiàn)人臉檢測功能
這篇文章主要為大家詳細(xì)介紹了Java+opencv3.2.0實(shí)現(xiàn)人臉檢測功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-02-02關(guān)于Java Spring三級(jí)緩存和循環(huán)依賴的深入理解
對(duì)于循環(huán)依賴,我相信讀者無論只是聽過也好,還是有過了解也好,至少都有所接觸。但是我發(fā)現(xiàn)目前許多博客對(duì)于循環(huán)依賴的講解并不清楚,都提到了Spring的循環(huán)依賴解決方案是三級(jí)緩存,但是三級(jí)緩存每一級(jí)的作用是什么,很多博客都沒有提到,本篇文章帶你深入了解2021-09-09Spring Security單項(xiàng)目權(quán)限設(shè)計(jì)過程解析
這篇文章主要介紹了Spring Security單項(xiàng)目權(quán)限設(shè)計(jì)過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11