我将Room数据库代码添加到当前项目中,并且在添加注释@Database后出现数据绑定错误。 但如果注释了@Database注释,则一切正常。
我的数据库课程
print (df.where(df.ge(threshold).cumsum(1).cumsum(1).eq(1)).ffill(axis=1).fillna(df))
0 1 2 3 4
130 0.10 0.20 0.12 0.25 0.25
143 0.11 0.27 0.27 0.27 0.27
146 0.30 0.30 0.30 0.30 0.30
324 0.06 0.20 0.12 0.15 0.20
Dao
@Database(entities = Filter.class, version = 1, exportSchema = false)
public abstract class TestDb extends RoomDatabase {
abstract public FilterDao filterDao();
}
实体类:
@Dao
public interface FilterDao {
@Insert(onConflict = OnConflictStrategy.REPLACE)
void insert(FilterValue filter);
@Query("SELECT * FROM FilterValue")
LiveData<FilterValue> getListFilter();
}
注意:如果我注释@Database注释代码,则无需创建数据库即可正常工作。
@Data
@Accessors(chain = true)
@ToString
@Entity
public class Filter {
@PrimaryKey
@ColumnInfo(name = "startDate")
private long startDate;
@ColumnInfo(name = "endDate")
private long endDate;
@ColumnInfo(name = "adult")
private int adult;
@ColumnInfo(name = "child")
private int child;
@ColumnInfo(name = "noOfRoom")
private int noOfRoom;
@ColumnInfo(name = "childrenAgeList")
private int childrenAgeList;
@ColumnInfo(name = "searchKeyword")
private String searchKeyword;
}
但是我可以看到匕首已成功生成我的数据库查询。
_db.execSQL(“如果不存在则创建表//@Database(entities = Filter.class, version = 1, exportSchema = false)
public abstract class TestDb extends RoomDatabase {
abstract public FilterDao filterDao();
}
(Filter
INTEGER NOT NULL,startDate
INTEGER NOT NULL,endDate
INTEGER NOT NULL,{{1} } INTEGER NOT NULL,adult
INTEGER NOT NULL,child
INTEGER NOT NULL,noOfRoom
TEXT,PRIMARY KEY(childrenAgeList
))));
请帮助我了解以下错误。我怎么能知道出了什么问题@Database注释
如果我从gradle.build代码中注释掉了房间编译器,则编译成功,但是在这种情况下,它的抛出错误找不到_impl类。
据我了解,编译器负责生成database_impl类
annotationProcessor “ android.arch.persistence.room:compiler:$lifecycleVersion”
所以我觉得使用Room complier的数据绑定类之间存在一些冲突
searchKeyword
错误:
startDate
答案 0 :(得分:0)
很奇怪,但事实如此。我有同样的问题;我的APK无法编译。我发现this answer对检查文本形式的构建输出很有用。注意最后的错误。
就我而言,我没有用@NonNull
注释我的主键字段。您的情况可能有所不同;但是,应该类似。