블로그 이미지
올해목표 // 10월 어학연수 떠나자~ 자수씨

카테고리

전체글 (1457)
Brand New! (28)
주절주절 (213)
MOT (11)
해외쇼핑 (49)
쇼핑노트 (150)
취미생활 (94)
iPhone (4)
Eclipse (121)
Google (83)
Spring (31)
JAVA (176)
JavaScript (59)
WEB (49)
Database (20)
OS (26)
Tools (8)
Tips (26)
IT정보 (1)
Book (21)
Programming (37)
외부행사 (43)
주변인들 (17)
여행노트 (60)
학교생활 (30)
회사생활 (52)
사회생활 (5)
외국어공부 (12)
잡동사니 (30)
Total
Today
Yesterday
 
11-11 17:17
 

달력

« » 2024.11
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
 

최근에 올라온 글

최근에 달린 댓글


지난 번 포스팅에서 작성한 코드에 대한 테스트 코드를 만들어보겠습니다.


1. 테스트 클래스 생성

/spring-data-sample/src/test/java/kr/co/vicki/sample/spring/data/jpa/repository/IMemberRepositoryTest.java


위의 테스트 코드를 실행하니 아래와 같은... 시퀀스가 없다고 합니다.




하이버네이트 용 시퀀스를 생성합니다.



코드를 실행하면 결과는 체크가 불가능하지만 녹색바가 뜨기 때문에 정상 동작한다고 생각합니다 -ㅅ-;;;


2. JpaRepository 의 이용



JpaRepository 는 기존에 사용하였던 CrudRepository 와 PagingAndSortingRepository 를 상속받는 구조입니다.

기존에 사용하였던 CRUD 외에 페이징과 소팅도 지원을 하며 메소드 이름을 통해 쿼리 제너레이션이 가능합니다.

IMemberRepository 의 superclass 를 JpaRepository 로 변경한 후 아래와 같이 메소드를 추가합니다.



findByMemberId(String memberId) 메소드는 메소드 이름 통해 쿼리를 생성하여 실행되게 됩니다.

select m from Member m where m.memberId = ?1


아래와 같은 규칙으로 메소드 이름으로 쿼리가 생성되니 참고를...
Keyword
Sample JPQL snippet
And findByLastnameAndFirstname … where x.lastname = ?1 and x.firstname = ?2
Or findByLastnameOrFirstname … where x.lastname = ?1 or x.firstname = ?2
Between findByStartDateBetween … where x.startDate between 1? and ?2
LessThan findByAgeLessThan … where x.age < ?1
GreaterThan findByAgeGreaterThan … where x.age > ?1
IsNull findByAgeIsNull … where x.age is null
IsNotNull,NotNull findByAge(Is)NotNull … where x.age not null
Like findByFirstnameLike … where x.firstname like ?1
NotLike findByFirstnameNotLike … where x.firstname not like ?1
OrderBy findByAgeOrderByLastnameDesc … where x.age > ?1 order by x.lastname desc
Not findByLastnameNot … where x.lastname <> ?1


SQL 없이 직관적으로 코딩이 가능한 Spring Data JPA!!! 실제 개발 프로젝트에 적용시키까지는 많은 시간이 걸리겠지만 컨셉은 아주 상콤합니다!!!

Posted by 자수씨
, |

글 보관함

최근에 받은 트랙백