2014-01-30 3 views
4
QueryBuilder<Answer, Integer> queryBuilder = helper.getAnswerDao().queryBuilder(); 
QueryBuilder<Question, Integer> questionQueryBuilder = helper.getQuestionDao().queryBuilder(); 

questionQueryBuilder.where().eq(Question.TYPE_COLUMN_NAME, "table");    
queryBuilder.leftJoin(questionQueryBuilder); 

queryBuilder.where().eq(Answer.PICKED_COLUMN_NAME, true); 

pickedAnswers = queryBuilder.query(); 

생성 된 SQL 문은 WHERE :Android ORMLite. LEFT 조인. 절

SELECT `Answers`.* 
FROM `Answers` 
    LEFT JOIN `Questions` ON `Answers`.`questionId` = `Questions`.`id` 
WHERE `Answers`.`picked` = 1 
    AND (`Questions`.`type` = 'table') 

이 쿼리는 빈 결과로 인해 설정 'AND'논리 연산 돌려줍니다. ORMLite의 기본 동작입니다. 'OR'연산으로 where 절을 변경 할 수 있습니까?

나는 전에 queryBuilder.where().eq(Answer.PICKED_COLUMN_NAME, true)queryBuilder.where().or(2) 모두 후에 where() 방법을 시도했다.

답변

4

정확히 내가 원하는 것을 수행하는 방법은 leftJoinOr입니다. OR 논리 연산을 사용하여 where 절을 빌드합니다.