블로그 이미지
올해목표 // 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
 
03-29 11:30
 

달력

« » 2024.3
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
31
 

최근에 올라온 글

최근에 달린 댓글

'Spring Data'에 해당되는 글 3건

  1. 2011.09.05 Spring Data JPA 맛보기 (3)
  2. 2011.09.05 Spring Data JPA 맛보기 (2)
  3. 2011.09.05 Spring Data JPA 맛보기 (1)

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


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 자수씨
, |

이전 포스팅에 이어 샘플 소스를 작성해보도록 하겠습니다.


1. 테이블 생성
샘플 테스트에 사용할 테이블을 아래 스크립트를 실행시켜 생성합니다.




2. domain, repository 소스 구성



Member 클래스: id 컬럼을 기본적으로 제공해주는 AbstractPersistable 를 상속받습니다.
- kr.co.vicki.sample.spring.data.jpa.domain.Member



IMemberRepository 클래스: id 를 이용하여 기본적인 CRUD 를 제공해주는 CrudRepository 를 상속받습니다.
- kr.co.vicki.sample.spring.data.jpa.repository.IMemberRepository



3. 환경 설정



/META-INF/persistence.xml (JPA 설정)


/infrastructure.xml (DB 환경 설정)


/repository-context.xml (jpa repository 등록)




이제 테스트 코드를 만들일만 남았습니다.

Posted by 자수씨
, |

Spring Data JPA 가 눈에 들어와서 간략한 튜토리얼을 작성합니다.


1. Maven 프로젝트 생성하기

이클립스에서 "New Maven Project" 로 Spring Data JPA 용 프로젝트를 생성합니다.

생성 시에 "Create a simple project (skip archetype selection)" 을 체크하시면 좀 더 빠르게 구조화된 프로젝트 구성이 가능합니다.




빌드 패스에서 "JRE System Library" 를 1.4 에서 1.6 으로 변경하고 /src/test/resource 를 삭제하면 위와 같은 구성이 됩니다.


2. pom.xml 설정

pom.xml 에 디펜던시와 플러그인과 관련된 설정을 적용합니다.



위와 같이 pom.xml 을 설정하고 저장하면, Spring Data JPA 로 개발할 수 있는 기본 환경 구성이 완료되었습니다~

Posted by 자수씨
, |

글 보관함

최근에 받은 트랙백