新しいルームライブラリのImは簡単なプロジェクトを作成します。DAOメソッドには、次のいずれかの注釈を付けることができます。挿入、削除、クエリ、更新
ここにエンティティクラスがあります。
@Entity(tableName = "user")
public class User {
@PrimaryKey
private Integer id;
private String name;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
ここはdaoクラスです。
@Dao
public interface UserDao extends Dao {
@Query("SELECT * FROM user")
List<User> getAll();
@Insert
void insert(User users);
}
ここにAppDatabaseクラスがあります。
@Database(entities = {User.class}, version = 1)
public abstract class AppDatabase extends RoomDatabase {
private static AppDatabase INSTANCE;
public abstract UserDao userDao();
public static AppDatabase getAppDatabase(Context context) {
if (INSTANCE == null) {
INSTANCE =
Room.databaseBuilder(context.getApplicationContext(), AppDatabase.class, "database-test")
.allowMainThreadQueries()
.build();
}
return INSTANCE;
}
public static void destroyInstance() {
INSTANCE = null;
}
}
これが私の主な活動です。
User user = new User();
user.setName("Test");
user.setId(2);
AppDatabase.getAppDatabase(this).userDao().insert(user);
AppDatabase.getAppDatabase(this).userDao().getAll();
しかし、私は上記のコードを実行します。私は下に誤りがあります。
Error:(14, 8) error: Abstract method in DAO must be annotated with interface android.arch.persistence.room.Query AND interface android.arch.persistence.room.Insert
私はそれを検索しますが、何も見つかりませんでした。ご意見ありがとうございます。
うん私のダオ・インタフェースは、他のインターフェイスを拡張する場合、私は、同じ問題を持っている:(... – issamux