관리 메뉴

한글창제의 기쁨

Spring DATA JPA Repository DeleteBy... , findBy... 사용자 변형 본문

Spring/Spring Data JPA

Spring DATA JPA Repository DeleteBy... , findBy... 사용자 변형

timesurfer 공간지배자 2016.10.27 18:03
Repository 사용자 변형 


PK값이 두개일때 FK가 걸려있는 컬럼을 이용해서 모두 지우려 할경우 JPA 에서는 데이터를 조회 한후 삭제 하기 때문에
삭제할 데이터가 없다는 오류메세지를 주고, 익셉션이 발생한다,
이때 사용자 변형 쿼리를 이용해서 사용하면 해결 가능하다.

FindBy....
DeleteBy...


PK값을 두개를 사용하기 때문에 @Embededable , Id 를 이용하는데 이때는 {PKClass}_AttributeName으로 사용한다.
Embededable Class 를 사용하여  FindBy, Delete By 사용시.
    
     findByPersionPK_userIdAnd....(String userId)
     deleteByPersionPK_userIdAnd....(String userId)

주의사항
JPA Query 사용시  @query 
Update 문 Delete 문 은 @Modify@Transaction 을 걸어 주어야 한다.

JPA2 부터는 @Transaction만 선언



저작자 표시
신고
0 Comments
댓글쓰기 폼