gpt4 book ai didi

android - 在 Android 上使用 ORMLite 保存集合时出现问题

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:37:14 26 4
gpt4 key购买 nike

我有两个类(class):

public class Questionnaire {

@DatabaseField(generatedId=true, useGetSet=true)
private Long id;

@DatabaseField
private int type;

@DatabaseField
private String title;

@DatabaseField
private String description;


@ForeignCollectionField(eager = true)
private Collection<Question> questions;
// Get and Set omitted

  public class Question {

@DatabaseField(generatedId=true, useGetSet=true)
private Long id;

@DatabaseField
private int type;

@DatabaseField
private String description;


@DatabaseField(foreign = true, foreignAutoRefresh= true)
private Questionnaire questionario;
//get and set ommited

当我保存带有问题列表的问卷时。对象被保留,但我失去了关系。

我是这样保存的:

ForeignCollection<Question> questions =
getDao(Questionnaire.class).getEmptyForeignCollection("questions");

for(Question question : DataUtil.getAllQuestions()) {
questions.add(question);
}

Questionnaire questionnarie = new Questionnaire();
questionnarie.setQuestions(questions);
questionnarie.setTitle("Normal");
questionnarie.setDescription("Questionário normal");
getDao(Questionnaire.class).createOrUpdate(questionarie);

当我从数据库中检索此寄存器时,Questionnaire 数据没有Questionnaire 的引用,而我的Questionnaire 也没有填写问题列表。

我们将不胜感激。

最佳答案

问题是您没有在Question 对象上设置questionario 字段。该关系是从Question 到关联的QuestionnaireQuestionnaire 表中没有任何内容指向另一个方向。查看documentation on foreign objects .

我建议您执行以下操作:

Dao<Questionnaire, Long> dao = getDao(Questionnaire.class);
ForeignCollection<Question> questions =
dao.getEmptyForeignCollection("questions");

Questionnaire questionnarie = new Questionnaire();
questionnarie.setQuestions(questions);
questionnarie.setTitle("Normal");
questionnarie.setDescription("Questionário normal");
dao.createOrUpdate(questionarie);

for(Question question : DataUtil.getAllQuestions()) {
// you must set the questionnarie field on the Question
// if it is a generated-id, it must be set _after_ it has been created
question.setQuestionnaire(questionnarie);
questions.add(question);
}

关于android - 在 Android 上使用 ORMLite 保存集合时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12885499/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com