我正在尝试将继承与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 }
我无法解决的问题(假设它得到支持)是如何为Ormlite注释3个类.
我只需要使用@DatabaseTable(tableName =“Student”)注释具体类,还是需要抽象类?
我一直收到如下错误:
04-24 10:18:30.857: E/AndroidRuntime(30495): Caused by: java.lang.RuntimeException: java.sql.sqlException: UnkNown field ‘name’ from the Android sqlite cursor,not in:[year,school]
解决方法
@DatabaseTable注释仅在Student或Teacher表上是必需的,如果它在Person基类上,则不会被使用.
您需要拥有的是Person中id和name字段的@DatabaseField注释.例如:
public abstract class Person{ @DatabaseField(generatedId = true) public int id; @DatabaseField public String name; }
ORMLite应该遍历类层次结构,并且基类中的任何字段都应包含在Student和Teacher表中.如果您编辑问题以显示@DatabaseField或其他注释,我可以进行更多评论.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。