Как запросить Java Viewentore DataView Store VIEWER для сущности, используя длинный идентификатор - PullRequest
3 голосов
/ 18 августа 2010

Я пытаюсь сделать что-то относительно простое и то, что, как мне кажется, я имел обыкновение делать.

Я пытаюсь использовать интерфейс администратора для запроса моего хранилища данных, используя длинный идентификатор. Рассматриваемая сущность определяется как:

@PersistenceCapable(identityType = IdentityType.APPLICATION, detachable = "true")
public class Notification
{   
    @PrimaryKey
    @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
    private Long notificationId = null;
}

В средстве просмотра хранилища данных в интерфейсе администратора appengine я выполняю следующий запрос gql:

SELECT * FROM Notification WHERE _key_ = KEY('Notification', 12345)
SELECT * FROM Notification WHERE id = KEY('Notification', 12345)
SELECT * FROM Notification WHERE notificationId = KEY('Notification', 12345)
SELECT * FROM Notification WHERE notificationId = 12345

Ни один из этих запросов не возвращает никаких результатов и не выдает никаких ошибок. Я уверен, что сущность существует. Один из них раньше работал, я просто не могу вспомнить, какой. Может ли это быть из-за недавнего обновления appengine до 1.3.6?

1 Ответ

4 голосов
/ 18 августа 2010

Вам нужно это:

SELECT * FROM Notification WHERE __key__ = KEY('Notification', 12345)

Обратите внимание на два подчеркивания вокруг клавиши, а не на одну.

...