ForeignCollection创建或更新

时间:2014-09-15 22:48:46

标签: android ormlite foreign-collection

如何在OrmLite中创建或更新ForeignCollection?

如果我尝试简单地将对象添加到ForeignCollection,add方法充当create(insert into)方法,但如果该对象已存在,我将收到有关没有唯一主键的错误。我不希望重复显示自动增量主键,因此可以通知这一点。

如果我使用更新方法,那么如果没有要更新的内容则会出错。

似乎foreigncollection对象没有办法告诉我数据库中是否已存在对象。

这是自己编写单独查询的唯一方法,看看每个对象是否存在并删除已更改的对象?

1 个答案:

答案 0 :(得分:0)

如果您正在使用例如:

@DatabaseTable(tableName = "question")
public class QuestionDb implements Serializable {

    @ForeignCollectionField(foreignFieldName = "question", eager = true)
    private ForeignCollection<AnswerDb> answers;
}

@DatabaseTable(tableName="answers")
public class AnswerDb implements Serializable{

    @DatabaseField (foreign=true,canBeNull=true,columnName=FIELD_QUESTIONID)
    private QuestionDb question;
}

您必须使用AnswersDB的createOrUpdate函数。

answerYouWantToAdd.setQuestion(yourQuestion);
answerDao.createOrUpdate(answerYouWantToAdd);