There are two main approaches to generating object identifier:
either using a generator (either one of standard ones, or a custom
generator), or using a value of a property. The latter case is
indicated by using a placeholder generator marker
ObjectIdGenerators.PropertyGenerator; former by using explicit generator.
Object id has to be serialized as a property in case of POJOs;
object identity is currently NOT support for JSON Array types
(Java arrays or Lists) or Java Map types.
Finally, note that generator type of
indicates that no Object Id should be included or used: it is included
to allow suppressing Object Ids using mix-in annotations.
Default value is
Scope is used for determining how many generators are needed; more than one scope is typically only needed if external Object Ids have overlapping value domains (i.e. are only unique within some limited scope)