1

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

如果我尝试简单地将对象添加到 ForeignCollection,则该add方法充当创建(插入)方法,但如果该对象已经存在,我将收到关于没有唯一主键的错误。我不希望使用自动递增的主键出现重复项,因此可以收到此通知。

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

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

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

4

1 回答 1

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);
于 2014-09-17T10:12:05.213 回答