Получение метки времени от объекта Objecify?

Можно ли получить временную метку, которая используется для оптимистичного параллелизма управление от объекта Objectify (или части нижнего уровня инфраструктуры Google Datastore), и если да, то как?


person Drux    schedule 04.03.2015    source источник


Ответы (1)


Должна быть возможность получить метку времени версии, указав подобное поле в вашем POJO объекта:

@IgnoreSave long __version__;

Номер версии находится в свойствах Entity с этим ключом. Если вы ищете официальную документацию, проверьте javadocs (и исходный код) для Entity.VERSION_RESERVED_PROPERTY и Entities.getVersionProperty(Entity)

Почему это работает

Когда вы загружаете низкоуровневый Entity, он предварительно заполняется синтетическим свойством с именем __version__. Просто добавив поле в POJO Objectify с этим именем, Objectify загрузит его из Entity. Используйте @IgnoreSave, чтобы значение только загружалось, а не сохранялось.

person stickfigure    schedule 04.03.2015
comment
Tx. Правильно ли я понимаю: имя __version__ не предписано Objectify, а то, что я выбрал; и мне пришлось бы присвоить его значение, например. с Entities.getVersionProperty(ofy().save().toEntity(object)? - person Drux; 05.03.2015
comment
Вам не нужно делать ничего явного, кроме объявления поля. Я добавил к своему ответу Почему это работает, надеюсь, это поможет! - person stickfigure; 05.03.2015