3

列の1つとして予約日を持つ予約テーブルがあります。JPA を使用して、appengine データストア内の 2 つの日付の間のすべての予定を取得したいと考えています。これを達成する方法を教えてください。次のクエリで試しましたが、うまくいきませんでした。

(apptSts='p' または apptSts='a') および (apptDate>=:fromDate または apptDate<=:toDate) の予定 a から a を選択します。

4

4 に答える 4

3

プロパティをリスト プロパティとして作成します。次に、2 つの日付の間でクエリを実行できます。Objectify で実行された次のテスト コードを参照してください。JPAでも同じ手法を使用できると思います。 https://github.com/stickfigure/objectify/blob/master/src/test/java/com/googlecode/objectify/test/QueryExoticTypesTests.java

于 2013-02-09T06:32:13.290 に答える
3

2 つの日付間の予定を取得するには、クエリ ロジックを変更して、 "または"の代わりに""を含める必要があります。

select a from Appointment
where apptDate>=fromDate and apptDate<=toDate

appengine の同じプロパティに不等式ファイラーを含めることはできますが、OR と組み合わせることはできません。

gql リファレンスの例を参照してください。これは JPA にも適用されます。

于 2013-02-09T07:01:50.490 に答える
0

複数の不等式を適用できますが、それらは同じフィールド (変数) にある必要があります。ここで間違っているのは、アプリ エンジンでブラケットの使用が許可されていないことです。

(conditionA AND conditionB .....) OR (conditionC AND conditionC .....)
//--this is not allowed.

ちなみに以下は許可されています(私はそれを試しました)

(conditionA AND conditionB .....) AND (conditionC AND conditionC)
//--allowed(although its bracket are meaning less here)
于 2015-04-27T10:09:35.667 に答える
-3

大なりまたは小なりクエリは 1 つしか実行できないため、実行する 1 つの方法は、大なりクエリを実行し、結果を確認して、小なりクエリに一致しないものを手動で除外することです。

于 2013-02-08T23:03:03.027 に答える