Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用ORMLite数据库检索数据时,内部类始终为空_Java_Android_Android Sqlite_Ormlite - Fatal编程技术网

Java 使用ORMLite数据库检索数据时,内部类始终为空

Java 使用ORMLite数据库检索数据时,内部类始终为空,java,android,android-sqlite,ormlite,Java,Android,Android Sqlite,Ormlite,我在我的Android应用程序中使用ORMLite,并尝试持久化和查询嵌套类。创建和更新模型是无错误的,尽管我不知道它是否按照我所期望的方式持久化了模型。当我查询模型时,我很好地得到了外部类的数据,但它从来没有得到内部类的数据。这是我的模型(为了可读性而精简): 我的查询方法: public List<Race> getAllRaces() { return mHelper.getRaceDao().queryForAll(); } public List getAllR

我在我的Android应用程序中使用ORMLite,并尝试持久化和查询嵌套类。创建和更新模型是无错误的,尽管我不知道它是否按照我所期望的方式持久化了模型。当我查询模型时,我很好地得到了外部类的数据,但它从来没有得到内部类的数据。这是我的模型(为了可读性而精简):

我的查询方法:

public List<Race> getAllRaces() {

    return mHelper.getRaceDao().queryForAll();
}
public List getAllRaces(){
返回mHelper.getRaceDao().queryForAll();
}
来自
getAllRaces
的列表填充了所有预期的变量(raceId和name),并且具有
规则的
ForeignCollection
。当我尝试访问
规则时,我得到一个大小为0的迭代器

我不确定如何处理
规则
类中的
种族
变量,我只知道ORMLite在没有包含它时抛出了错误。我尝试将其保留为空,希望ORMLite能够自动与其父级建立连接,当这不起作用时,我尝试在持久化之前设置
race
变量,但效果相同


我哪里出错了?

规则的DB/Table似乎没有根据您提供的代码填充


您需要为“Rule”类创建一个Dao,并具有适当的addOrUpdateRule(规则)在解析过程中使用,因为ORMLite无法根据“Race”类中作为ForeignCollectionField的关联自动填充规则的DB/表。

规则的DB/表似乎没有根据您提供的代码填充


您需要为“Rule”类创建一个Dao,并具有适当的addOrUpdateRule(规则)在解析过程中使用,因为ORMLite无法根据“Race”类中作为ForeignCollectionField的关联自动填充规则的DB/表。

规则的DB/表似乎没有根据您提供的代码填充


您需要为“Rule”类创建一个Dao,并具有适当的addOrUpdateRule(规则)在解析过程中使用,因为ORMLite无法根据“Race”类中作为ForeignCollectionField的关联自动填充规则的DB/表。

规则的DB/表似乎没有根据您提供的代码填充



您需要为“Rule”类创建一个Dao,并具有适当的addOrUpdateRule(规则)在解析过程中使用,因为ORMLite无法根据其作为“Race”类中ForeignCollectionField的关联自动填充规则的DB/表。

您可以发布getForAll的查询和结果映射吗?@ThrashBean查询方法是我发布的最后一个方法。你说的“结果图”是什么意思?查询返回的列表?是的,查询返回的内容。我想你是用xml定义的。@ThrashBean我没有必要用xml为ORMLite定义任何东西。我从查询中得到的所有数据都在模型类中定义(用
@DatabaseField
@ForeignCollectionField
注释的变量)。从调试中,我得到了一个我添加到数据库中的所有种族的列表,其中有一个
规则
ForeignCollection
对象。然而,“rules”中的迭代器大小为0,即使在我将每个种族添加到数据库时,每个种族都有1或2条规则。哦,我明白了。我从来没有和奥姆利特一起工作过。对我来说,规则似乎不知道种族。在这里,我看到了一些关于eager的信息,它的默认值是false。可能您可以尝试将其设置为true,以避免延迟加载。真的不知道。你能为getForAll发布你的查询和结果映射吗?@ThrashBean查询方法是我发布的最后一个方法。你说的“结果图”是什么意思?查询返回的列表?是的,查询返回的内容。我想你是用xml定义的。@ThrashBean我没有必要用xml为ORMLite定义任何东西。我从查询中得到的所有数据都在模型类中定义(用
@DatabaseField
@ForeignCollectionField
注释的变量)。从调试中,我得到了一个我添加到数据库中的所有种族的列表,其中有一个
规则
ForeignCollection
对象。然而,“rules”中的迭代器大小为0,即使在我将每个种族添加到数据库时,每个种族都有1或2条规则。哦,我明白了。我从来没有和奥姆利特一起工作过。对我来说,规则似乎不知道种族。在这里,我看到了一些关于eager的信息,它的默认值是false。可能您可以尝试将其设置为true,以避免延迟加载。真的不知道。你能为getForAll发布你的查询和结果映射吗?@ThrashBean查询方法是我发布的最后一个方法。你说的“结果图”是什么意思?查询返回的列表?是的,查询返回的内容。我想你是用xml定义的。@ThrashBean我没有必要用xml为ORMLite定义任何东西。我从查询中得到的所有数据都在模型类中定义(用
@DatabaseField
@ForeignCollectionField
注释的变量)。从调试中,我得到了一个我添加到数据库中的所有种族的列表,其中有一个
规则
ForeignCollection
对象。然而,“rules”中的迭代器大小为0,即使在我将每个种族添加到数据库时,每个种族都有1或2条规则。哦,我明白了。我从来没有和奥姆利特一起工作过。对我来说,规则似乎不知道种族。在这里,我看到了一些关于eager的信息,它的默认值是false。可能您可以尝试将其设置为true,以避免延迟加载。真的不知道。你能为getForAll发布你的查询和结果映射吗?@ThrashBean查询方法是我发布的最后一个方法。你说的“结果图”是什么意思?查询返回的列表?是的,查询返回的内容。我想你是用xml定义的。@ThrashBean我没有必要用xml为ORMLite定义任何东西。我从q得到的所有数据
public boolean addOrUpdateRace(Race race) {

    CreateOrUpdateStatus status = mHelper.getRaceDao().createOrUpdate(race);
    return status.isCreated() || status.isUpdated();
}
public List<Race> getAllRaces() {

    return mHelper.getRaceDao().queryForAll();
}