Spring Data JPA レコード件数を数える方法

CrudRepository の count() メソッドでレコード件数を数えることが出来ます。テーブルのレコード件数だけ知りたいケースで便利です。

CrudRepository は JpaRepository のスーパーインターフェースです。そのため、JpaRepository を extends して作成する Repository クラスで count() メソッドを使用することが出来ます。戻り値は long型 で返却されます。

サンプル

サンプルコードを示します。

このクラスがデータエンティティです。DBのテーブルとマッピングします。

@Data
@Entity
public class TestInfo {
  @Id
  @GeneratedValue(strategy = GenerationType.AUTO)
  private Integer id;
  private Date updateTime;
}

JpaRepository を extends するのは TestInfoRepositoryクラス としました。

@Repository
public interface TestInfoRepository extends JpaRepository<TestInfo, Integer> {
}

TestInfoRepositoryクラス を Autowired して使用します。

@Controller
public class SampleController {

  @Autowired
  TestRepository testRepository;
  
  @GetMapping(value = "/")
  public void index() {
    long testInfoList = testRepository.count();
  }
}

これでレコード件数が取得できました。SQLやカウント処理を書かなくても済むので便利ですね。

参考

Interface CrudRepository<T,ID> – Spring Javadoc