I have a question. I edited my Room entity from this:
@Entity(tableName = "users")
public class User {
public User(String username, String email, String password){
this.username = username;
this.email = email;
this.password = password;
}
public User() {}
@PrimaryKey
@ColumnInfo(name = "Username")
private String username;
@ColumnInfo(name = "Email")
private String email;
@ColumnInfo(name = "Password")
private String password;
//getters setters
To this form:
@Entity(tableName = "users")
public class User {
public User(String username, String email, String password){
this.username = username;
this.email = email;
this.password = password;
}
public User() {}
//changes here, move userId to int instead of username
@NonNull
@PrimaryKey(autoGenerate = true)
private int id;
@NonNull
@ColumnInfo(name = "Username")
private String username;
@ColumnInfo(name = "Email")
private String email;
@ColumnInfo(name = "Password")
private String password;
//getters setters.
And this is how looks my RoomDatabase
class:
@Database(entities = {User.class}, version = 1)
public abstract class ApplicationDatabase extends RoomDatabase {
public abstract UserDao userDao();
}
My question is when I edit an entity if the database in my android device change? What if I had data in my database? If I need to drop the database on my device first? What about my constructor for user, it will work now?
Thanks for any advice