본문 바로가기

JpaRepository2

[JPA] 특정 Table의 원소 개수 가져오기 crudRepository를 확장하는 repository (JpaRepository, MongoRepository 등)을 사용하고 있으며, 해당 repository가 매핑하는 table에 포함된 record 개수를 가져오고 싶을 때는 `count()` 메소드를 사용하면 된다. ... long userCount = userRepository.count(); ... 해당 인터페이스를 통해 나가는 쿼리는 통상적으로 record 개수를 찾을 때 이용하는 select count(*) 쿼리가 나가며, 실행 시간에는 거의 영향을 주지 않는 수준이다. 10만개의 Entity에 대해서 평균적으로 94ms 정도의 시간이 걸린다. 여기서도 신기했던 게, 동시에 날아간 4개의 쿼리는 94ms의 시간이 걸렸지만, 뒤늦게 혼자 .. 2022. 10. 17.
[DB Migrator] SpringBoot 동적으로 JpaRepository 생성 및 등록하기 DB Migrator는 사용자의 편의를 최대한 봐주면서 Data Migration이 진행되는 것을 목표로 한다. 처음 인턴 했던 스타트업의 기술 블로그에도 작성했듯 목표로 했던 기능 중 첫 번째 편의성 기능은 Repository를 자동으로 생성하는 것이다. 그 이유는 생각보다 간단한데, 사용하는 Repository method가 기본적으로 findAll과 save 뿐이었다. 그래서 모든 Repository 코드가 아래와 같았다. 원래 업무로 맡았던 DB의 Entity만 해도 60개가량 됐는데, 해당 코드들에 대해서 모두 이런 텅 빈 Repository 코드를 일일이 써주는 것은 정말 비효율적이라고 생각했다. 심지어 만약 내가 findAll이나 save가 아닌 다른 method를 통해서 데이터 읽기 및 저.. 2022. 9. 20.