4

Collection の getter と setter を持つ ForeignCollection を含むエンティティがあります

public class TextQuestion{

    @ForeignCollectionField
    private ForeignCollection<TextAnswer> answers;
    ....

DAO をカプセル化する Servicer ラッパー クラスがあります。

public class TextQuestionService
{

    private static TextQuestionService instance;
    private static Dao<TextQuestion, Integer> textQuestionDAO;
    private static DatabaseHelper dbHelper = new DatabaseHelper();


    public void addAnswer( TextQuestion textQuestion, TextAnswer answer )
    {
        List<Answer> answers = (List)textQuestion.getAnswers();
        if( answers == null )
        {
            try
            {
                answers = (List)textQuestionDAO.getEmptyForeignCollection("answers");
            } catch (SQLException e)
            {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        answers.add(answer);
    }

私の質問は、Wrapper サービス クラスを介してこのコレクションにアイテムを追加、削除するにはどうすればよいですか? 上記は私の努力ですが、コレクションをリストにキャストするなどして完全に迷子になりました。問題は、質問のForeignCollectionに回答を追加したいときです。質問して、永続化する前に回答を追加してください。前の質問から、親が DB から取得されていない場合は getEmptyForeignCollection を呼び出す必要があることを理解しています。これを行う簡単な方法が必要ですか?うまくいった同様の例はどれもいいでしょう

4

1 に答える 1

6

問題は、質問に回答を追加したい場合、ForeignCollectionは、回答コレクションがnullでなくても問題はありませんが、質問を作成したい場合です。

私はあなたが近いと思います。次のことができるはずです。

ForeignCollection<TextAnswer> answers = textQuestion.getAnswers();
if (answers == null) {
    answers = textQuestionDAO.getEmptyForeignCollection("answers");
}
answers.add(answer);

answersすることもできますがCollection<TextAnswer>、ではありませんList

于 2012-07-19T18:06:25.363 に答える