クエリの WHERE 条件に CASE を実装する必要があります。次のコードを書きました。
QueryBuilder<Cars, String> carsQB = carsDao.queryBuilder();
carsQB.selectColumns("id");
carsQB.join(modelsDao.queryBuilder());
carsQB.where().raw("CASE WHEN future = true THEN date > ? ELSE endDate > ? END",
new SelectArg("date"), new SelectArg("endDate"));
しかし、次のエラーが表示されます。
E/AndroidRuntime(4599): Caused by: java.lang.IllegalArgumentException:
Either the column name or SqlType must be set on each argument
date と endDate は両方とも、データベースの Date 列です。
私は何が欠けていますか?これを達成するためのより良い方法はありますか?ありがとう!