ormlite中的抽象嵌套类

Posted

技术标签:

【中文标题】ormlite中的抽象嵌套类【英文标题】:Abstract Nesting class in ormlite 【发布时间】:2015-07-23 05:29:50 【问题描述】:

我有一个项目,其中包含三种类型的嵌套对象,位置、类别和值列表。每个对象都是一个包含父字段和子字段的树。所以我想创建一个抽象类作为基类,我正在使用 ormlite 来保存记录。

我的抽象类如下所示:

public abstract class SelectionValue 

    @DatabaseField(generatedId = true, columnName = "_id")
    private long id;

    @DatabaseField
    private String label;

    @DatabaseField
    private int sort;

    @DatabaseField
    private long valueId;

    @ForeignCollectionField
    private Collection<SelectionValue> children;

    @DatabaseField (foreign = true, foreignAutoRefresh = true)
    private SelectionValue parent;

    // setters and gettings 

但是当我运行应用程序时,我从 ormlite 收到此错误:

Foreign collection SelectionValue for field 'children' column-name does not contain a
    foreign field of class Location.

有解决办法吗?

【问题讨论】:

SelectionValue 类是否包含字段Location?这就是外国领域的运作方式。否则,ORMLite 怎么知道某个位置有哪些子节点? 【参考方案1】:

您孩子的数据类型错误。根据 ORMLite 手册:http://ormlite.com/javadoc/ormlite-core/doc-files/ormlite_2.html#Foreign-Collection 你的类应该是这样的:

@ForeignCollectionField
private ForeignCollection<SelectionValue> children;

【讨论】:

试过了,还是不行,文档说明你可以使用 ForeignCollection 或 Collection

以上是关于ormlite中的抽象嵌套类的主要内容,如果未能解决你的问题,请参考以下文章

Kotlin——最详细的抽象类(abstract)内部类(嵌套类)详解

Kotlin 初学者抽象类-嵌套类-单例类-接口

抽象类中嵌套接口

类与接口java中的接口与嵌套接口

C++ 私有嵌套抽象类

kotlin学习之类的修饰符与抽象类,嵌套类,内部类,匿名内部类