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]
的@DatabaseTable注释是仅在必要Student或Teacher表格和,如果它是在将不使用Person基类.
你需要拥有的是@DatabaseField关于id和name字段的注释Person.例如:
public abstract class Person{
@DatabaseField(generatedId = true)
public int id;
@DatabaseField
public String name;
}
Run Code Online (Sandbox Code Playgroud)
ORMLite应该遍历类层次结构,并且基类中的任何字段都应该包含在Student和Teacher表中.如果您编辑问题以显示@DatabaseField或其他注释,我可以进行更多评论.