Генерация идентификатора в API низкого уровня
-
27-10-2019 - |
Вопрос
Мне нужно использовать API низкого уровня , чтобы сохранить объект типа Value в Google App Engine.Я искал и нашел только примеры таким способом:
родовое словоМоя проблема в том, что я не знаю заранее идентификатор (идентификатор значения), потому что мне нужно, чтобы он был сгенерирован как последовательность.Это был бы способ сделать это в API низкого уровня, как это делается в JDO как:
родовое словоКак я могу получить идентификатор на низком уровне или настроить его для генерации в виде последовательности?
Спасибо.
Решение
Класс Entity
имеет множество конструкторов.Используйте тот, который принимает единственную строку - имя типа - и идентификатор будет сгенерирован для вас, когда вы сохраните его в хранилище данных.
Другие советы
Может быть, попробовать использовать "allocateIds", чтобы выделить диапазон используемых идентификаторов? Это даст вам набор зарезервированных ключей для использования. Я сомневаюсь, что вы сможете получить строгую последовательность, например, в реляционных базах данных, но, по крайней мере, вы сможете получить гарантированные уникальные и пригодные для использования ключи.
См. документацию по DatastoreService:
Также для получения дополнительной информации вы можете взглянуть на то, как Datanucleus использует этот API: