반응형
Spring Data JPA는 다양한 프레임워크와 연동기능을 제공한다. JPA만으로 해결할 수 없는 동적쿼리등을 지원하기 위함이다. 대표적으로 QueryDSL 등을 사용하고, JDBC Template, Mybatis 등도 사용할 수 있다. 가장 많이 사용해본 Mybatis와의 연동을 실습해보았다.
사용자 정의 Repository - MyBatis
MemberRepositroy에 기존 Spring Data JPA가 제공하는 메소드 말고, 다른 프레임워크(Mybatis)를 이용한 메소드를 추가하기 위해 다음과 같은 사용자 정의 Repository와 구현체 class를 만들어보았다.
1
2
3
|
public interface MemberRepositoryMybatis {
List<Member> findDynamic(MemberDto memberDto);
}
|
1
2
3
4
5
6
7
8
9
10
11
|
@Repository
public class MemberRepositoryImpl implements MemberRepositoryMybatis{
@Autowired
Sqlsession session;
@Override
List<Member> findDynamic(MemberDto memberDto) {
return session.select("member.find",memberDto);
}
}
|
여기서 중요한 점이 있다. 기존 Spring Data JPA의 인터페이스인 MemberRepository에 MemberRepositoryMybatis 의 메소드를 추가하는 것이기에 구현체의 이름을 꼭 MemberRepositoryImpl 로 해주어야 한다. 이렇게 해두면 Spring Data JPA가 자동으로 이것을 인지하고 상속받게 되어있다.
그 후 기존 MemberRepository에 다음과 같이 JpaRepsitory 옆에 상속을 해준다.
1
2
3
4
|
public interface MemberRepository extends JpaRepository<Member,Long>,MemberRepositoryMybatis {
List<Member> findByEmailAndName(String email,String name);
}
|
출처 : 자바 ORM 표준 JPA 프로그래밍 - 에이콘 출판, 김영한 저
반응형
'Java&Web' 카테고리의 다른 글
[Apache] Apache와 Tomcat 연동하기 (0) | 2020.12.17 |
---|---|
[WEB] Web Server와 WAS (0) | 2020.12.17 |
[JPA] Spring Data JPA (3) - 페이징과 정렬 (2) | 2020.08.28 |
[JPA] Spring Data JPA (2) - 메소드 네임 쿼리, @Query (0) | 2020.08.28 |
[JPA] Spring Data JPA (1) - 소개, 기본 (0) | 2020.08.28 |