2014-09-10 2 views
0

는 :스프링 JPA 처리 널 (null) 값은 내가이 쿼리를 사용하여 데이터베이스에서 시퀀스 ID를 선택하기 위해 노력하고있어

그것은 테이블에 값이 없을 때를 제외하고 잘 작동
@Query("select max(pi.sequence) + 1 from ProductImage pi where pi.product = :product") 
    int nextSequenceForProduct(@Param("product")Product product); 

, 그것은 몇 가지 유형을 던졌습니다 JPA 코드에서 Null 값 예외가 발생했습니다.

spring jpa에서 null 값을 처리 할 수있는 방법이 있습니까? 이 SQL과 같은 예를 들어 뭔가 :

select ifnull(max(pi.sequence),1) from .... 
+0

예외를 방지하기 위해 기본 쿼리 또는 명명 된 기본 쿼리에 쿼리를 변경할 수 있습니다 ' " (pi.sequence가 null 인 경우)를 선택한 다음 ProductImage pi의 1 else (max (pi.sequence) +1) end where pi.product = : product "'? – geoand

답변

0

당신은 NVL() 함수를 사용하고 당신이 좋아하는 뭔가를 시도

@NativeQuery("select nvl(max(pi.sequence),0) + 1 from ProductImage pi where pi.product = :product") 
+0

JPQL –

+0

에는 "NVL"이 없으므로 쿼리를 기본 쿼리로 만드는 것이 좋습니다. –