관리 메뉴

IT.FARMER

Spring JPA QueryMethod(findBy...deleteBy) 본문

Spring/Spring Data JPA

Spring JPA QueryMethod(findBy...deleteBy)

아이티.파머 2016. 10. 27. 18:03
반응형
 
QueryMethod (Repository 사용자 변형)
 
 
PK값이 두개일때 FK가 걸려있는 컬럼을 이용해서 모두 지우려 할경우 JPA 에서는 데이터를 조회 한후 삭제 하기 때문에
삭제할 데이터가 없다는 오류메세지를 주고, 익셉션이 발생한다,
이때 사용자 변형 쿼리를 이용해서 사용하면 해결 가능하다.
 
findByUserId(fieldName)
deleteByUserIdAnd{fieldName}
 
 
 
@Eembedable 로 Muilti PK 사용시
 
PK값을 두개를 사용하기 때문에 @Embededable , Id 를 이용하는데 이때는 {PKClass}_AttributeName으로 사용한다.
Embededable Class 를 사용하여  FindBy, Delete By 사용시.
 
findByPersionPK_userIdAnd....(String userId)
deleteByPersionPK_userIdAnd....(String userId)

 

 

 
public interface CampaignJpaRepository extends JpaRepository<CampaignEntity, CampaignPK>, QuerydslPredicateExecutor<CampaignEntity> {

  List<CampaignEntity> findByCampaignPKMediaId(String mediaId);
}
 
 
 
주의사항
 
JPA Query 사용시  @query 
Update 문 Delete 문 은 @Modify@Transaction 을 걸어 주어야 한다.
 
JPA2 부터는 @Transaction만 선언
 
 

 

반응형