I just started looking at rooms, installing and encountering a bug.
The bug is as follows:
.. \ todolist \ DAO \ NoteDao_Impl.java: 42: error: incomparable types: int and if (value.getId () == null) {
As far as I know, it is because the primary key is int, so this class has an error (this class is of room, not mine created). I do not know how to fix it, please help me.
Some class information
Note.java
@Entity(tableName = "Note")
public class Note {
@PrimaryKey(autoGenerate = true)
private Integer id;
private String content;
private int color;
private boolean isChecked;
private String nameSublist;
@Ignore
private Date createAt;
public Note() {
}
public Note(int id, String content) {
this.id = id;
this.content = content;
this.color = 0;
}
// getter and setter
}
NoteDao.java
@Dao
public abstract class NoteDao {
@Insert(onConflict = OnConflictStrategy.REPLACE)
public abstract Long insertNote(Note note);
@Update(onConflict = OnConflictStrategy.REPLACE)
public abstract void updateNote(Note note);
@Delete
public abstract void deleteNote(Note note);
@Query("DELETE FROM " + Constants.KEY_TABLE_NAME_NOTE)
public abstract void deleteAll();
@Query("DELETE FROM Note WHERE nameSublist= :sublist")
public abstract void deleteSublist(String sublist);
@Query("SELECT * FROM Note")
public abstract List<Note> queryAll();
@Query("SELECT * FROM Note WHERE nameSublist = :sublist")
public abstract List<Note> querySublist(String sublist);
@Query("SELECT * FROM Note WHERE id = :id")
public abstract Note queryNote(int id);
}
Appdatabase.java
@Database(entities = {Note.class}, version = 1, exportSchema = false)
public abstract class AppDatabase extends RoomDatabase {
private static final Migration MIGRATION_1_0 = new Migration(1, 0) {
@Override
public void migrate(@NonNull SupportSQLiteDatabase database) {
// do something when update version
}
};
private static AppDatabase INSTANCE;
public static AppDatabase getInstance(Context context) {
if (INSTANCE == null) {
INSTANCE = Room.databaseBuilder(context, AppDatabase.class, Constants.KEY_TABLE_NAME_APPDATA) //todolist.sqlite
.allowMainThreadQueries() // allow query in main, default false
.addMigrations(MIGRATION_1_0)
.fallbackToDestructiveMigration()
.build();
}
return INSTANCE;
}
public abstract NoteDao noteDao();
}
Build.gradle
implementation 'android.arch.persistence.room:runtime:2.2.5'
annotationProcessor 'android.arch.persistence.room:compiler:2.2.5'
image Error bug