如何在OrmLite中创建或更新ForeignCollection?
如果我尝试简单地将对象添加到ForeignCollection,add
方法充当create(insert into)方法,但如果该对象已存在,我将收到有关没有唯一主键的错误。我不希望重复显示自动增量主键,因此可以通知这一点。
如果我使用更新方法,那么如果没有要更新的内容则会出错。
似乎foreigncollection对象没有办法告诉我数据库中是否已存在对象。
这是自己编写单独查询的唯一方法,看看每个对象是否存在并删除已更改的对象?
答案 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);