TestSample(entity)객체 와 같은 디렉토리에 TestSampleRepository 생성
extends JpaRepository<TestSample, String>, TestSampleRepositoryCustom(네이밍 꼭 맞춰야함) 추가
@Repository public interface TestSampleRepository extends JpaRepository<TestSample, String>, TestSampleRepositoryCustom {
}
TestSampleRepositoryCustom 인터페이스 생성, 사용할 메소드명 및 파라미터 지정
public interface TestSampleRepositoryCustom {
TestSample test() { }
}
TestSampleRepositoryImpl 클래스 생성 후 implements TestSampleRepositoryCustom 추가
미구현된 메소드 구현하기
public class TestSampleRepositoryImpl implements TestSampleRepositoryCustom {
SqlSessionTemplate sqlSessionTemplate;
String namespace = "testsample.TestSample.";
@Autowired
public TestSampleRepositoryImpl(@Qualifier("SqlSessionTemplate") SqlSessionTemplate sqlSessionTemplate){
this.sqlSessionTemplate = sqlSessionTemplate;
}
@Override
public TestSample test() {
return sqlSessionTemplate.selectOne(namespace+"read");
}
}
xml 파일에서 지정한 id 값을 TestSampleRepositoryImpl에서 sqlSessionTemplate를 이용해서 .selectOne, selectList, .update 등등의 기능을 사용하여 xml 파일의 쿼리를 사용할 수 있도록 지정
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="testsample.TestSample">
<select id="read" parameterType="string" resultType="testsample.TestSample">
SELECT * FROM test_sample limit 1;
</select>
</mapper>
테스트하기
@Test
public void MybatisWithJpaRepositoryTest(){
testSampleRepository.findAll(); // JpaRepository 기능 사용
testSampleRepository.test(); // mybatis에서 구현한 맵퍼 사용
}
'JAVA > JPA' 카테고리의 다른 글
[Spring] Querydsl 설정하기 (0) | 2020.01.08 |
---|---|
[Spring] JPA Sample (0) | 2020.01.08 |
[Spring] 헷갈리는 용어 JPA, Hibernate, Spring data JPA 차이점 (0) | 2020.01.07 |
[Spring] Spring JPA 시작하기(기본 설정 값, JPA 객체 생성) (0) | 2020.01.03 |