Android ORMLite. LEFT join. WHERE clause
android, ormlite
Solution
There is `leftJoinOr` method which does exactly what I need. It builds where clause with OR logical operation.
Problem
``` 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(); ``` Generated SQL statement: ``` SELECT `Answers`.* FROM `Answers` LEFT JOIN `Questions` ON `Answers`.`questionId` = `Questions`.`id` WHERE `Answers`.`picked` = 1 AND (`Questions`.`type` = 'table' ) ``` This query returns empty result set due to 'AND' logical operation. This is default behaviour of ORMLite. Is any possibility to change where clause conjuction with 'OR' operation? I have tried: `queryBuilder.where().or()` before `queryBuilder.where().eq(Answer.PICKED_COLUMN_NAME, true)` and `queryBuilder.where().or(2)` after all `where()` methods.