アプリケーションに次のクエリがあります
query = cls.query().filter(cls.taskgroup_id == taskgroup_id, cls.availability == True, cls.task_id > min_task_id).order(cls.task_id)
query.fetch(1)
上記は期待どおりに正常に動作します。(taskgroup_id に一致し、利用可能で、task_id > min_task_id のエンティティのみをフェッチします)
ただし、クエリを複数のステートメントに分割すると。
query = cls.query()
query.filter(cls.taskgroup_id == taskgroup_id)
query.filter(cls.availability == True)
query.filter(cls.task_id > min_task_id)
期待どおりに動作しません。
[2] を実行すると、クエリの構成が複数のステートメントに分割され、可用性が False で、task_id が min_task_id に等しいエンティティが返されます。
[2] 期待どおり (または期待どおり) に動作しません。ここにユーザーエラーがあると思います。それが何であるか疑問に思います。