쿼리 메소드로 해결이 되지 않는 경우 직접 코딩으로 구현가능
- 스프링 데이터 리포지토리 인터페이스에 기능 추가
- 스프링 데이터 리포지토리 기본 기능 덮어쓰기 가능
- 구현 방법
- 커스텀 리포지토리 인터페이스 정의
- 인터페이스 구현 클래스 만들기(기본 접미어는 IMPL)
- 엔티티 리포지토리에 커스텀 리포지토리 인터페이스 추가
public Interface PostCustomRepository extends JpaRepository<Post,Long>, PostcustomRepository{
List<Post> findMyPost();
}
기본 기능도 사용하되 일부 기능은 Override하여 나의 입맛에 맞게 수정하여 사용함
@Repository
@Transactional
public class PostcustomRepositoryImpl implements PostcustomRepository{
@AutoWired
EntityManager entityManager;
@Override
public List<Post> findMyPost(){
System.out.println("custom findMyPost");
return entityManager.createQuery("SELECT p From Post As p").getResultList();
}
}
구현체는 IMPL을 붙여줘야함
만약 IMPL을 사용하기 싫으면 아래와 같이 수정해주면됨
@SpringBootapplication
@EnableJpaRepositories(repositoryImplementationPostfix="Default")
public class Application{
public static void main(String[] args]{
SpringApplication.run(Application.class)
}
}
'SPRING > JPA' 카테고리의 다른 글
[JPA] 연관관계 (0) | 2022.02.09 |
---|---|
[JPA]객체지향쿼리 (0) | 2022.02.09 |
[JPA]MappedSuperClass (0) | 2022.01.21 |
[JPA] 프록시 (0) | 2022.01.21 |
[JPA]객체지향 쿼리 심화 (0) | 2022.01.21 |