Spring Boot/JPA

사용자 정의 리포지토리

최-코드 2024. 8. 29. 17:17

기본적으로 JpaRepository를 상속받으려면 repository는 interface이어야 한다. 이 때 inteface이므로 구현 메소드를 사용하지 못한다. 이를 위해 Spring Data JPA에서는 Custom Repsotiroy를 JpaRepository 상속 인터페이스에서 사용할 수 있도록 기능을 지원한다.

이 때 Custom Repository에는 일종의 규칙이 존재하는데, 먼저 interface를 만든 후, 이 interface를 구현한 클래스가 존재해야 한다. 이 클래스의 명은 interface 명 + Impl이어야 한다.

ex) CustomRepository(interface) - CustomRepositoryImpl(class)

 

Tip) 하나의 Custom Repository에 다 넣을 필요 없다. 오히려 그러면 클래스가 복잡해 보이므로 유연하게 같은 기능(find, insert, ...)끼리 묶어주는 방식으로 진행하는게 좋다.