App引擎数据存储 - 在Enum字段上查询

Gop*_*opi 6 java google-app-engine enums google-cloud-datastore

我正在使用GAE(Java)和JDO来实现持久性.

我有一个带有Enum字段的实体,该字段标记为@Persistent并正确保存到数据存储区(从开发控制台中的数据存储区查看器中观察到).但是当我查询这些实体根据Enum值放置一个过滤器时,无论我为枚举字段指定了什么值,它总是返回所有实体.

我知道GAE java支持枚举像基本数据类型一样持久化.但它是否也允许基于它们进行检索/查询?Google搜索无法向我指出任何此类示例代码.

细节:

我在执行之前打印了Query.所以在两种情况下,查询看起来像 -

SELECT FROM com.xxx.yyy.User WHERE role == super ORDER BY key desc RANGE 0,50

SELECT FROM com.xxx.yyy.User WHERE role == admin ORDER BY key desc RANGE 0,50
Run Code Online (Sandbox Code Playgroud)

尽管数据存储区查看器显示某些用户类型为"admin"且某些类型为"super",但上述两个查询都会返回数据存储区中的所有用户实体.

Gop*_*opi 3

目前,我用简单的整数常量替换了枚举。将此案例报告为 Google 应用引擎中的问题:http://code.google.com/p/googleappengine/issues/detail ?id=2927