Я использую Google App Engine.
Если IdGeneratorStrategy.Identity генерирует поле Длинного ключа, а затем объект удаляется из хранилища данных, есть ли вероятность повторного использования ключа другим объектом того же класса?
PaperCrane на Reddit пишет:
Документация для
GenerationType.IDENTITY говорит, что это
означает постоянный провайдер (
база данных) предоставит уникальный идентификатор.
Так что это полностью зависит от вашей базы данных
программное обеспечение, если оно решит повторно использовать идентификаторы
из удаленных записей. Не зная
что-нибудь еще о вашей проблеме я бы
сказать, что это возможно, но я не могу думать
любой веской причины для базы данных
сервер для отслеживания, какие идентификаторы
использовать и утилизировать старые. Тот
кажется много накладных расходов на очень
мало пользы.
А Марк Росс в группах Google пишет
о том, как создаются идентификаторы GAE:
Поскольку хранилище данных в prod
состоит из нескольких бэк-эндов, мы
использовать заколдованный подход к пособию по безработице
идентификаторы, чтобы нам не пришлось беспокоиться
о разной раздаче бэк-эндов
тот же идентификатор. Таким образом, конец А может быть
работая от пула идентификаторов в диапазоне
от 0 до 100, и конец B может быть
работая от пула идентификаторов в диапазоне
от 101 до 200 и тд. Если твой
вставки попали в другое хранилище данных
Back-end вы получите идентификаторы, которые прыгают
вокруг немного. Вы можете зависеть от этих
Идентификаторы уникальны, но не
монотонно возрастающий.
Теперь я думаю, что очень маловероятно, что значения идентичности используются повторно, но все равно было бы хорошо получить четкий окончательный ответ.