我想编写一个单元测试,基本上验证我添加到外部集合的对象实际上是在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);