Создание групп объектов при сохранении доступа к длинным идентификаторам

Я использую хранилище данных appengine, и все мои сущности имеют длинные идентификаторы как их PrimaryKey. Я использую эти идентификаторы для связи с клиентом, так как для полноценной передачи ключей требуется гораздо большая пропускная способность.

Теперь я хочу сформировать группы сущностей, чтобы можно было выполнять сложные операции внутри транзакций, и это можно найти на http://code.google.com/appengine/docs/java/datastore/transactions.html, которую мне нужно использовать Ключи или ключи со строковым кодированием - простые длинные не подходят.

Я не возражаю против рефакторинга, чтобы использовать Ключи, но я все же хочу не посылать чудовищные вещи по проводам. Как я могу получить уникальный (для каждого вида) длинный идентификатор для объекта, первичным ключом которого является ключ?

1 ответ

Решение

Вам не нужно использовать имена (строки). Все методы KeyBuilder, которые принимают имена, также имеют аналоги, которые принимают идентификаторы (длинные).

Для передачи вам просто необходимо указать имя или идентификатор ключа. Как только вы знаете идентификатор или имя, вы можете восстановить сервер ключей. Если это дочерняя сущность, вам необходимо знать имена и идентификаторы родителя и ребенка.

Другие вопросы по тегам