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

前端之家收集整理的这篇文章主要介绍了android – 如何使用ORMLite正确注释继承类?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试将继承与ORMLite一起使用,如果支持与否,我无法查看文档和谷歌搜索.

我想做的是

  1. public abstract class Person{
  2. public int id;
  3. public String name;
  4. }
  5.  
  6. public class Student extends Person{
  7. public String school;
  8. public String year;
  9. // other student stuff
  10. }
  11.  
  12. public class Teacher extends Person{
  13. public String title;
  14. // other teacher stuff
  15. }

我无法解决的问题(假设它得到支持)是如何为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注释.例如:

  1. public abstract class Person{
  2. @DatabaseField(generatedId = true)
  3. public int id;
  4. @DatabaseField
  5. public String name;
  6. }

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

猜你在找的Android相关文章