【问题标题】:Room Dao can't access table name in Android projectRoom Dao 无法访问 Android 项目中的表名
【发布时间】:2022-06-15 19:35:36
【问题描述】:

我的道

        @Dao
        public interface DrugDao {
            @Query("SELECT * FROM drugs")
            List<Drug> getDrugList();
            @Insert
            void insertDrug(Drug drug);
            @Update
            void updateDrug(Drug drug);
            @Delete
            void deleteDrug(Drug drug);
        }

我的实体

        @Entity(tableName = "drugs")
        public class Drug {
            @PrimaryKey(autoGenerate = true)
            private int id;
            @ColumnInfo(name = "name")
            private String name;
            @ColumnInfo(name = "dose")
            private int dose;
            @ColumnInfo(name = "frequency")
            private String frequency;
            @ColumnInfo(name = "checkBoxId")
            private String checkBoxId;
            @ColumnInfo(name = "checkBoxStatus")
            private boolean checked;

数据库类

    @Database(entities = Drug.class, exportSchema = false, version = 1)
    public abstract class DrugDatabase extends RoomDatabase {
        private static final String DB_NAME= "drug_db";
        private static DrugDatabase instance;
    
        public static synchronized DrugDatabase getInstance(Context context) {
            if (instance == null) {
                instance = Room.databaseBuilder(context.getApplicationContext(), DrugDatabase.class, DB_NAME)
                        .fallbackToDestructiveMigration()
                        .build();
            }
            return instance;
        }
    
        public abstract DrugDao drugDao();
    }

我这里有两个类,一个是道,一个是对象。目标是将对象存储在数据库中。由于某种原因,Dao @Query 无法访问对象中定义的表名。我在“药物”上收到错误,因为无法解析符号“药物”。

【问题讨论】:

  • 您是否将药物实体添加到数据库实现中?
  • 我的格式可能不好,但我将数据库类粘贴到问题中。我想我有。
  • 您是否在 Drug 实体中为其字段创建了 getter、setter ?
  • 是的,我没有在此处包含它们,因为我认为它们没有必要。我的 IDE 现在唯一的错误/红色标记是 Dao 中的表名。

标签: android


【解决方案1】:

你能解决这个问题吗?我也遇到了同样的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-15
    • 1970-01-01
    • 2019-05-24
    • 2018-08-25
    • 1970-01-01
    • 2018-06-18
    • 2018-08-13
    相关资源
    最近更新 更多