これが私が仕事に取り掛かろうとしているコードスニペットです:
final Query query = pm.newQuery("SELECT FROM model.Strip WHERE publishOn <= startDate
&& endDate >= publishOn PARAMETERS Date startDate, Date endDate import java.util.Date");
クエリを実行しているのは1つのパラメータのみなので、これはGoogleドキュメントに従って機能するはずです。
不等式フィルターは1つのプロパティでのみ許可されますクエリは、すべてのフィルターの1つのプロパティで不等式フィルター(<、<=、> =、>、!=)のみを使用できます。たとえば、次のクエリが許可されます。
import com.google.appengine.api.datastore.Query;
import com.google.appengine.api.datastore.Query.FilterOperator;
import com.google.appengine.api.datastore.Query.SortDirection;
Query q = new Query("Person");
q.addFilter("birthYear", FilterOperator.GREATER_THAN_OR_EQUAL, minBirthYearParam);
q.addFilter("birthYear", FilterOperator.LESS_THAN_OR_EQUAL, maxBirthYearParam);
もちろん、これは低レベルのデータストアインターフェイスを使用していますが、JDOの実装でもそれを使用していると思います。
しかし、クエリを実行すると、この役に立たないエラーメッセージが表示されます。
org.datanucleus.store.appengine.query.DatastoreQuery $ UnsupportedDatastoreFeatureException:query =publishOnパラメータの問題DatestartDate、Date endDate import java.util.Date>:クエリの解析中に予期しない式のタイプ:org.datanucleus.query.expression.ParameterExpression
誰かがこのような範囲クエリを実行する方法を知っていますか