Как установить значение автоинкремента для первичного ключа в ActiveAndroid
Я новичок в активном Android, и я сделал операцию CRUD, но я не могу установить автоинкремент для первичного ключа. Я уже пробовал приведенный ниже код, но он мне не нужен:
@Table(name = "Employee", id = "EmpId")
public class Employee extends Model {
@Column(name = "empid")
public long empid;
@Column(name="name")
public String name;
}
Вот employee
это мое имя таблицы У меня есть первичные 2 поля, одно empid
а также name
, Мне нужно установить значение автоинкремента на первичный ключ. Как я могу это сделать?
1 ответ
Чтобы выполнить обновление с уникальным столбцом в качестве псевдо первичного ключа, аннотация должна выглядеть примерно так:
@Column(name = "empid", unique = true, onUniqueConflict = Column.ConflictAction.REPLACE)
public long empid;
Как мы можем прочитать в документации:
Важно отметить, что ActiveAndroid создает поле id для ваших таблиц. Это поле является автоинкрементным первичным ключом.
Более того, если вы хотите создать собственный первичный ключ в своей модели, вы можете проверить решение, упомянутое в проблеме GitHub, связанной с ActiveAndroid, которое выглядит следующим образом:
@Table(name = "Employee", id = "EmpId")
public class Employee extends Model {
@Column(name = "id")
public long id;
@Column(name="name")
public String name;
}
Тогда поле id является настраиваемым первичным ключом, который будет автоматически увеличен.