adicionar @PrimaryKey(autoGenerate = true)
@Entity
public class User {
@PrimaryKey(autoGenerate = true)
private int id;
@ColumnInfo(name = "full_name")
private String name;
@ColumnInfo(name = "phone")
private String phone;
public User(){
}
//type-1
public User(String name, String phone) {
this.name = name;
this.phone = phone;
}
//type-2
public User(int id, String name, String phone) {
this.id = id;
this.name = name;
this.phone = phone;
}
}
enquanto armazena dados
//type-1
db.userDao().InsertAll(new User(sName,sPhone));
//type-2
db.userDao().InsertAll(new User(0,sName,sPhone));
tipo 1
Se você não estiver passando valor para a chave primária, por padrão, será 0 ou nulo.
tipo 2
Coloque nulo ou zero para o ID durante a criação do objeto (objeto de usuário do meu caso)
Se o tipo de campo for longo ou int (ou seu TypeConverter o converter em longo ou int), os métodos Insert tratam 0 como não definido durante a inserção do item.
Se o tipo do campo for Inteiro ou Longo (Objeto) (ou seu TypeConverter o converte em Inteiro ou Longo), os métodos Insert tratam nulo como não definido durante a inserção do item.
0.toDouble()
você pode usar0.0
, declare-o como um duplo