2

我是安卓新手。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

4

0 回答 0