Annotation Type PrimaryKey


  • @Retention(RUNTIME)
    @Target(FIELD)
    public @interface PrimaryKey
    The @PrimaryKey annotation will mark a field as a primary key inside Realm. Only one field in a RealmObject class can have this annotation, and the field should uniquely identify the object. Trying to insert an object with an existing primary key will result in an io.realm.exceptions.RealmPrimaryKeyConstraintException. Primary key cannot be changed after the object created.

    Primary keys also count as having the Index annotation.

    It is allowed to apply this annotation on the following primitive types: byte, short, int, and long. String, Byte, Short, Integer, Long, ObjectId and UUID are also allowed, and further permitted to have null as a primary key value.

    This annotation is not allowed inside Realm classes marked as \@RealmClass(embedded = true).