2014-12-05 2 views
0

내 질문은 매우 간단합니다. JOOQ를 사용하여 조건 목록을 WHERE 절에 전달할 때 생성 된 SQL에 사용 된 부울 연산자가 무엇인지 알고 싶습니다. . 예를 들어조건부를 JOOQ의 WHERE 절로 전달

:

SELECT * FROM MY_TABLE WHERE (MY_COLUMN1='Foo' AND MY_COLUMN2='Far') OR (MY_COLUMN1='Boo' AND MY_COLUMN2='BAR'); 

하거나 :

SELECT * FROM MY_TABLE WHERE (MY_COLUMN1='Foo' AND MY_COLUMN2='Far') AND (MY_COLUMN1='Boo' AND MY_COLUMN2='BAR'); 

답변

1

조건은 -connected AND있다

List<Condition> conditions = new ArrayList<>(); 
conditions.add(MY_TABLE.MY_COLUMN1.equal("Foo").and(MY_TABLE.MY_COLUMN2.equal("Far")); 
conditions.add(MY_TABLE.MY_COLUMN1.equal("Boo").and(MY_TABLE.MY_COLUMN2.equal("Bar")); 
DSL.selectFrom(MY_TABLE).where(conditions).fetch(); 

이 결과는 SQL. SelectWhereStep.where(Condition...)의 Javadoc은 (which should be fixed)을 언급하지 않지만 기본 구현은 SelectQuery.addConditions(Condition...)이며 Operator.AND의 사용을 지정합니다.

SELECT * FROM MY_TABLE 
WHERE (MY_COLUMN1='Foo' AND MY_COLUMN2='Far') 
    AND (MY_COLUMN1='Boo' AND MY_COLUMN2='BAR'); 
:

그래서 결과 쿼리는 두 번째 사례가 될 것입니다

관련 문제