执行数据库操作时出现错误。
在我的项目中,当我尝试从Dao类访问deleteAll()
的{{1}}中的AuthenticationDao
时,我遇到了错误
请参阅以下代码:
Room Database
AppDatabase.java
@Dao
public interface AuthenticationDao {
@Insert
void insert(Authentication authentication);
@Query("delete from authentication")
void deleteAll();
@Query("select * from authentication")
Authentication getAuthInformation();
}
出了什么问题?
是因为我使用 @Database(entities = {Authentication.class}, version = 1, exportSchema = false)
public abstract class AppDatabase extends RoomDatabase {
private static AppDatabase INSTANCE;
public static AppDatabase getAppDatabase(Context context) {
if (INSTANCE == null) {
INSTANCE =
Room.databaseBuilder(context,
AppDatabase.class,
"my-database")
.allowMainThreadQueries()
.build();
}
return INSTANCE;
}
public abstract AuthenticationDao authenticationDao();
}
初始化数据库对象吗?
如果我使用AppDatabase dbInstance = Room.databaseBuilder(context,AppDatabase.class,"my-database")
.allowMainThreadQueries()
.build();
,则可以正常工作。
可能是什么原因?