在SQLite中使用ForeignCollections

前端之家收集整理的这篇文章主要介绍了在SQLite中使用ForeignCollections前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想编写一个单元测试,基本上验证我添加到外部集合的对象实际上是在DAO保存检索对象时正确保存和检索的
这是我的实体.

@DatabaseTable
public class Question implements Question,Serializable {

    @DatabaseField
    private String questionText;

    @ForeignCollectionField
    private ForeignCollection<Answer> answers;

    public void addAnswer(Answer answer) {
        answers.add(answer);
    }

我想要做的是创建一个Question实例,将一个Answer对象添加到集合中,并将问题传递给我的DAO,这将保留它.持久性在常规字段上工作正常,所以我知道那里没有问题.

如何在集合中添加答案?当我创建问题时,它的答案集合为空.这是我必须保存新问题,然后检索它以使答案集合非空?或者,我是否设置了BaseCollection,LazyCollection实例的答案?

解决方法

这是一个FAQ.正确的方法是使用 Dao.getEmptyForeignCollection(…)方法创建可以添加项目的集合.就像是:

Question question = new Question();
query.answers = questionDao.getEmptyForeignCollection("answers");
Answer answer1 = new Answer();
query.answers.add(answer1);
// this can come before the question.answers.add()
questionDao.create(question);

猜你在找的Sqlite相关文章