AppEngine JDO查询过滤器“属性有祖先”

时间:2012-10-31 22:27:32

标签: java google-app-engine jdo

我有一个存储类型'ContainableObject'的实体,它有一个类型为'Container'的实体作为其属性之一。

class ContainableObject {

    @Persistent
    @Unowned
    private Container container;
    ...

'Container'有一个父类实体'Building'

由于该表实际上存储了一个包含其父键的容器的键(即属性容器为Key('Building',1,'Container',23),因此可以按select * from ContainableObject where container has ancestor Key('Building', 1)

的方式编写查询。

我知道我还可以将Building作为ContainableObject的直接属性存储,以便在查询过滤器中使用它,但这是唯一的方法吗?我很确定答案是肯定的,但我想要一些确认,因为它不是一个连接,因为父键被埋在某处。

注意:ContainableObject与Container的实体组不同,这不是祖先查询,JDO的AppEngine实现无论如何都不支持AFAIK。

1 个答案:

答案 0 :(得分:1)

无法获得您指定的查询。您需要修改代码结构才能实现目标。

希望这有帮助。