如何使用ORMLite正确注释继承类?

Boo*_*zie 6 sqlite inheritance android ormlite

我正在尝试将继承与ORMLite一起使用,如果支持与否,我无法查看文档和谷歌搜索.

我想做的是

public abstract class Person{
   public int id;
   public String name;
}

public class Student extends Person{
   public String school;
    public String year;
    //  other student stuff
}

public class Teacher extends Person{
   public String title;
    // other teacher stuff
}
Run Code Online (Sandbox Code Playgroud)

我无法解决的问题(假设它得到支持)是如何为ORMLite注释3个类.

我是否只需要用具体类注释@DatabaseTable(tableName = "Student")或者我是否也需要抽象类?

我一直收到如下错误:

04-24 10:18:30.857:E/AndroidRuntime(30495):引起:java.lang.RuntimeException:java.sql.SQLException:来自Android sqlite游标的未知字段'name',而不是:[year,school]

Gra*_*ray 7

@DatabaseTable注释是仅在必要StudentTeacher表格和,如果它是在将不使用Person基类.

你需要拥有的是@DatabaseField关于idname字段的注释Person.例如:

public abstract class Person{
    @DatabaseField(generatedId = true)
    public int id;
    @DatabaseField
    public String name;
}
Run Code Online (Sandbox Code Playgroud)

ORMLite应该遍历类层次结构,并且基类中的任何字段都应该包含在StudentTeacher表中.如果您编辑问题以显示@DatabaseField或其他注释,我可以进行更多评论.