我是安卓新手。DBFlow
在我的应用程序上使用映射数据库时遇到问题。
首先,我将谈谈我的数据库模式。
集合 (
msg_key
整数主键,message_id
整数,...)消息(
message_id
:整数主键,...)
还有我在同一个包上的 Java 代码,
Message
班级:
@Table(database = MyDatabase.class, name = Constants.TBL_MESSAGE, allFields = true)
public class Message extends BaseModel {
@PrimaryKey
int message_id;
String description;
}
Collection
班级:
@Table(database = MyDatabase.class, name = Constants.TBL_COLLECTION, allFields = true)
public class Collection extends BaseModel {
@Column(setterName = "setMsg_key", getterName = "getMsg_key")
@PrimaryKey
private int msg_key;
@Column(setterName = "setMessage_id", getterName = "getMessage_id")
@ForeignKey(references = {
@ForeignKeyReference(columnType = Integer.class,
columnName = Constants.TBL_COL_MSG,
foreignKeyColumnName = Constants.TBL_MSG_ID)}
, saveForeignKeyModel = false)
private Message message_id;
public void setMessage_id(Message message_id) {
this.message_id = message_id;
}
public void setMsg_key(int msg_key) {
this.msg_key = msg_key;
}
public int getMsg_key() {
return msg_key;
}
public Message getMessage_id() {
return message_id;
}
}
作为DBFlow
文件,
所有字段都必须是公共的或包私有的,因为 _Adapter 类需要访问它们。注意:包私有字段不必在同一个包中,因为 DBFlow 会生成必要的访问方法来获取它们。
或仅当您为名为 {name} 的列指定 get{Name}() 和 set{Name}(columnType) 方法时才私有。这可以配置。
但是当我构建应用程序时,android studio 会抛出一个错误
错误:无法比较的类型:int 和
<null>
然后我generated code
通过 DBFlow 检查并实现它的比较 int 与 null。
我不确定这是DBFlow
错误还是我在某处缺少/错误的配置?请给我你的建议/解决方案。
谢谢!
=============更新=============
我正在使用 DBFlow 3.0.0 beta3