añadir @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;
}
}
mientras almacena datos
//type-1
db.userDao().InsertAll(new User(sName,sPhone));
//type-2
db.userDao().InsertAll(new User(0,sName,sPhone));
tipo 1
Si no está pasando el valor de la clave primaria, por defecto será 0 o nulo.
tipo 2
Poner nulo o cero para la identificación al crear el objeto (mi objeto de usuario de caso)
Si el tipo de campo es largo o int (o su TypeConverter lo convierte en largo o int), los métodos de inserción tratan 0 como no establecido al insertar el elemento.
Si el tipo de campo es Integer o Long (Object) (o su TypeConverter lo convierte en Integer o Long), los métodos de inserción tratan nulo como no establecido al insertar el elemento.
0.toDouble()
usar, puede0.0
declararlo como un doble