3

我有一个约会表,其中约会日期为一列。我想使用 JPA 检索 appengine 数据存储中两个日期之间的所有约会。请让我知道如何实现这一目标?我尝试了以下查询,但没有奏效。

从约会中选择一个,其中 (apptSts='p' 或 apptSts='a') 和 (apptDate>=:fromDate 或 apptDate<=:toDate)

4

4 回答 4

3

将该属性设为列表属性。然后您可以在两个日期之间进行查询。请参阅在 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

要检索两个日期之间的约会,您需要将查询逻辑更改为包括 "" 而不是 "" :

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

您只能执行大于或小于查询,因此一种方法是执行大于查询,并遍历结果并手动过滤掉与小于查询不匹配的结果。

于 2013-02-08T23:03:03.027 回答