我想编写一个单元测试,它基本上验证了我添加到外部集合的对象实际上在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
对象,并将Question
传递给我的DAO,这将保留它。持久性在常规字段上工作正常,所以我知道那里没有问题。
如何在集合中添加Answer
?当我创建Question
时,它的答案集合为空。这是我必须保存新的Question
然后检索它以使答案集合非空?或者,我是否将答案设置为BaseCollection,LazyCollection实例?
答案 0 :(得分:7)
这是常见问题解答。正确的方法是使用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);