티스토리 뷰

2022-10-28 01:23:46.064  INFO 29124 --- \[  restartedMain\] .RepositoryConfigurationExtensionSupport :
Spring Data JDBC - Could not safely identify store assignment for repository candidate interface org.deco.gachicoding.comment.domain.repository.CommentRepository. If you want this repository to be a JDBC repository, consider annotating your entities with one of these annotations: org.springframework.data.relational.core.mapping.Table.

 

최근 Spring Boot 구동을 하면 위와 같은 로그가 여러줄 출력됐다. 특별히 지금까지 문제없이 작동했어서  별 신경을 안 썼는데, 오늘 문득 눈에 띄어서 살펴봤다. 대충 Spring Data JDBC에서 프로젝트의 엔터티 클래스들을 식별할 수 없다는 의미인 것 같은데, 나는 Spring Data JDBC를 사용한 적이 없다.

혹시 몰라 build.gradle 의존성을 살펴봤더니 역시나 의존성 설정이 잘못되어 있었다. spring-boot-starter-data-jpa에서 이미 jdbc에 관해 의존성을 가지고 있는데, 불필요하게 spring-boot-starter-jdbc, spring-boot-starter-data-jdbc 의존성을 추가한 것이었다. 아마 처음 프로젝트 설정을 할 때 대충 jdbc니까 필요하겠지 싶어서 넣었던 것 같다.

깔끔하게 제거한 뒤 관련한 로그가 더이상 뜨지 않는 것을 확인했다. 

혹시 몰라 테스트도 돌려보니 정상이었다.

 

한편, Spring Data JPA가 이미 존재하기도 하고 훨씬 간편한 것 같은데, Spring Data JDBC만 따로 의존성을 추가해서 사용하는 경우가 있을까? 궁금해져서 가볍게 찾아봤다.

https://blog.neonkid.xyz/275

 

[Spring Data] Spring Data JDBC를 이용한 DB 연동 (기본편)

Spring Data JDBC는 우리가 일반적으로 알고 있는 Spring JDBC와는 조금 차이가 있습니다. JDBC 템플릿은 쿼리를 직접 입력하고 우리가 이들의 함수 형태를 직접 인터페이스로 구현해야 하기 때문에 손이

blog.neonkid.xyz

위 글에 따르면 Spring Data JPA의 Lazy Loading, Dirty Checking, Cache 등의 기능은 경우에 따라 단점으로 작용할 수 있다고 한다. 이러한 어려운 요소들을 제거하고 기본적인 CRUD에 집중하는 모듈이라고 한다. 

다음에 기회가 된다면 좀 더 자세히 다뤄봐야겠다.

댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday