Annotation Interface Id
@Retention(RUNTIME)
@Target({FIELD,ANNOTATION_TYPE})
@Documented
@Inherited
@API(status=STABLE,
since="6.0")
public @interface Id
This annotation is included here for completeness. It marks an attribute as the primary id of a node entity. It can
be used as an alternative to
Id
and it may provide additional features in
the future.
To use assigned ids, annotate an arbitrary attribute of your domain class with
Id
or this annotation:
@Node public class MyEntity { @Id String theId; }You can combine
@Id
with @Property
with assigned ids to rename the node property in which the
assigned id is stored.
To use internally generated ids, annotate an arbitrary attribute of type java.lang.long
or
java.lang.Long
with @Id
and @GeneratedValue
.
@Node public class MyEntity { @Id @GeneratedValue Long id; }It does not need to be named
id
, but most people chose this as the attribute in the class. As the attribute
does not correspond to a node property, it cannot be renamed via @Property
.
To use externally generated ids, annotate an arbitrary attribute with a type that your generated returns with
@Id
and @GeneratedValue
and specify the generator class.
@Node public class MyEntity { @Id @GeneratedValue(UUIDStringGenerator.class) String theId; }Externally generated ids are indistinguishable to assigned ids from the database perspective and thus can be arbitrarily named via
@Property
.- Since:
- 6.0
- Author:
- Michael J. Simons