4

我有一个包含 ForeignCollection 的实体,该实体带有集合的 getter 和 setter

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 添加一个答案时,如果答案集合不为空但我想建立提出问题,在坚持之前添加答案。从上一个问题中,我了解到如果尚未从数据库中检索到父级,我需要调用 getEmptyForeignCollection。必须有一个简单的方法来做到这一点?任何类似的例子都会很好

4

1 回答 1

6

问题是当我想向 Questions ForeignCollection 添加一个 Answers 时,如果 Answers Collection 不为空但我想建立 Questions 就没有问题,

我认为你很接近。你应该能够做到:

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

answers也可以是 aCollection<TextAnswer>但不是 a List

于 2012-07-19T18:06:25.363 回答