2017-02-14 2 views
2

jOOQ를 사용하여 이와 같은 쿼리를 작성하고 실행하려고합니다. exemple 들어jOOQ를 사용하여 SELECT EXISTS (하위 쿼리)를 만들려면 어떻게해야합니까?

SELECT EXISTS(subquery) 

:

SELECT EXISTS(SELECT 1 FROM icona_etiqueta WHERE pvp IS NULL AND unitat_venda = 'GRAMS') 

내가 어떻게 할 수 있습니까? 할 수 있습니까?

+0

SQL을 작성하는 방법을 알고있는 사용자의 또 다른 경우이지만 타사 소프트웨어가 방해가됩니까? –

답변

1

발견. 내가 selectExists 메서드를 찾고 있었고 DSL.exists() 술어 생성자로 혼란스러워했습니다.

fetchExists(subquery) 훨씬 편리합니다.

내 구체적인 예는 다음과 같이 해결 : 직접 부울을 반환

create.fetchExists(
     create.selectOne() 
       .from(ICONA_ETIQUETA) 
       .where(ICONA_ETIQUETA.PVP.isNull(), 
        ICONA_ETIQUETA.UNITAT_VENDA.eq('GRAMS')) 
    ); 

합니다.

3

Your own solution은 내가하고 싶은 일에 가장 편리한 방법입니다.

create.select(field(exists(...))) 

당신이 (DSL.exists(Select)에 의해 생성)를 Condition 랩 어디 FieldDSL.field(Condition)를 사용 : 좀 더 일반적인 접근 방식은 사용하는 것입니다.

jOOQ 3.9부터 Field<Boolean>Condition은 같은 유형이 아닙니다. 나중에 #3867으로 변경 될 수 있습니다.