@Target(value={METHOD,TYPE}) @Retention(value=RUNTIME) public @interface SpaceId
To designate a property as the entity's primary key. The getter method of the POJO object provides a matchable fields for the space. Define whether this field value to be used as when generating UID. The field value should be unique, i.e. no multiple objects with the same value should be written into the space, each object should have a different field value. When writing an object into the space with existing PrimaryKey field value EntryAlreadyInSpaceException will be thrown. UID is created based on the PrimaryKey field value.
To designate multiple properties as a composite primary key, use this annotation on the class and
use properties()
to list the participating properties. Naturally properties()
and autoGenerate()
cannot be used together, as composite key cannot be autogenerated.
Modifier and Type | Optional Element and Description |
---|---|
boolean |
autoGenerate
The auto-generate property defines how a unique ID is generated.
|
SpaceIndexType |
indexType
Indicated if the space id should be indexed, and if so with which index type.
|
String[] |
properties
When used at the class level, denotes the properties which participate in a composite space id.
|
public abstract boolean autoGenerate
false
, indicating that a unique ID will be
generated from the annotated field's supplied value's toString()
. This field can
be of any type, but it's value's string representation enforces uniqueness. When
auto-generate is true
, it indicates that a unique ID will be generated by
the space (when first written) injecting the UID String
value into this field -
which must be of type String
.
public abstract String[] properties
public abstract SpaceIndexType indexType
autoGenerate()
is true the property is not indexed, otherwise it's indexed with either a regular
SpaceIndexType.EQUAL
index or a compound index, depending if the id is a single or multiple properties.Copyright © GigaSpaces.