4

基本的に、外部コレクションに追加したオブジェクトが実際に保存され、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と、その回答コレクションはnullになります。回答コレクションをnull以外にするために、新しいものを保存してからQuestion取得する必要がありますか?または、BaseCollection、LazyCollectionインスタンスに回答を設定しますか?

4

1 に答える 1

7

これは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);
于 2012-07-16T16:04:03.010 に答える