DBFlow - 使用整数类型的外键

时间:2016-02-18 17:36:29

标签: android orm android-sqlite dbflow

我是Android上的新手。使用DBFlow在我的应用程序上映射数据库时遇到了麻烦。

首先,我将讨论我的数据库架构。

  

集合msg_key INTEGER PRIMARY KEY,message_id INTEGER,...)

     

消息message_id:INTEGER PRIMARY KEY,...)

我的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;
    }
}

作为figure out how much space you have

  

所有字段必须是public或package private作为_Adapter类   需要访问它们。注意:包私有字段不必在   与DBFlow相同的包将生成必要的访问方法   去找他们。

     

或仅在指定get {Name}()和时使用私有   为名为{name}的列设置{Name}(columnType)方法。这可以   构造

但是当我构建应用程序时,android studio会抛出错误

  

错误:无法比较的类型:int和<null>

然后我通过DBFlow检查generated code并实现它的比较int与null。

DBFlow document

我不确定它的DBFlow错误或我在某处丢失/错误的配置? 请给我你的建议/解决方案。

谢谢!

=============更新=============

我正在使用DBFlow 3.0.0 beta3

0 个答案:

没有答案