Android ORMLite. LEFT connection. WHERE clause

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 an empty result set due to the logical AND operation. This is the default behavior of ORMLite. Is it possible to change where the merger of sentences with the operation "OR"?

I tried: queryBuilder.where().or()before queryBuilder.where().eq(Answer.PICKED_COLUMN_NAME, true)and queryBuilder.where().or(2)after all the methods where().

+4
source share
1 answer

There is a method leftJoinOrthat does exactly what I need. It creates a where clause with a logical OR operation.

+4
source

Source: https://habr.com/ru/post/1524481/


All Articles