Я использую инфраструктуру Room Entity для класса с именем User, и я устанавливаю идентификатор пользователя для автоматического создания.
Я попытался создать пользовательский объект, используя конструктор ONLY, поскольку Room не может выбирать между несколькими конструкторами.
Мой класс выглядит так:
@Entity
public class User {
@PrimaryKey(autoGenerate = true)
@NonNull
@ColumnInfo(name = "user_id")
private Integer userID;
@ColumnInfo(name = "first_name")
private String firstName;
@ColumnInfo(name = "last_name")
private String lastName;
public User(String firstName, String lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
public Integer getUserID() {
return userID;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public void setUserID(Integer userID) {
this.userID = userID;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}
Объект создается так:
User user = new User("Gabriel", "Johnson");
Я ожидал, что идентификатор будет равен 1, так как я предполагаю, что он будет увеличиваться с каждым созданным пользователем, начиная с 1. Но идентификатор равен нулю, автогенерация никогда не происходит.