SpringData Jpa中count的使用

2021-09-29 05:59:47 字數 1591 閱讀 5986

通常,我們會有統計數量的需求,jpa對一些簡單統計數量的需求通過方法名就可以解析。然而對於稍微複雜的需求則無法通過方法名解析。

對於這種需求,還是需要寫sql實現。

當我的repository介面繼承jparepository時,缺省會繼承它的乙個count()方法

crudrepository介面中有count()方法。它被解析後的sql為:

在studentrepository中寫下count會有對應提示,表示這些方法名可以被jpa解析。那麼,他們有什麼區別呢?

除了countdistinctbyname其他4個方法對應的sql均為:

select

count(student0_.id) as col_0_0_

from

student student0_

where

student0_.name=?

countdistinctbyname對應的sql為:

select

distinct count(distinct student0_.id) as col_0_0_

from

student student0_

where

student0_.name=?

也就是無論by後面的是哪個字段,count的物件都是id。所以某些需求就無法通過方法名解析實現,例如,獲取唯一的名字個數

或者用原生sql

spring data jpa實體繼承

spring jpa中我們要將sql對映到物件,尤其是在spring boot這種高度自動化的環境下使用,大量的最優目錄結構與命名規則可以大大降低配置,約定大於配置貫穿其中。例如我們定義查詢dao,繼承jparepository即可。然後返回的物件,我們可以定義model entity table ...

SpringData JPA分頁查詢

首先我們需要知道springdata jpa 的幾個介面 其實看名字就大概懂了,也可以很方便的使用 首先我們的持久化層繼承jparepository,相當於繼承了增刪改查的持久化層以及分頁查詢的持久化層 所以如果我們要使用分頁查詢 我們只需要直接呼叫 由一開始的圖也可以看到pageable的其中乙個...

springData Jpa簡單查詢

一 介面方法整理速查 下表針對於簡單查詢,即jparepository介面 繼承了crudrepository介面 pagingandsortingrepository介面 中的可訪問方法進行整理。1 先按照功能進行分類整理,分為儲存 刪除 查詢單個 查詢多個 其他5類。2 再將不建議使用的方法置灰...