代码之家  ›  专栏  ›  技术社区  ›  Udi Oshi

房间数据库架构实体扩展错误

  •  2
  • Udi Oshi  · 技术社区  · 7 年前

    在使用android Room时,我拥有以下实体:

    @Entity
    public class Call implements Parcelable {
    
    @PrimaryKey(autoGenerate = true)
    private long id;
    private String filePath;
    private long durationInMillis;
    private String phoneNumber;
    private int isStarred;
    private int isIncoming;
    private long timestampCreated;
    }
    

    一切都很好。但现在我希望我的pojo(Call.class)扩展一个抽象类,如下所示:

    @Entity
    public class Call extends BaseViewTypeData implements Parcelable {
    ....
    ....
    }
    

    Error:Cannot figure out how to save this field into database. You can 
    consider adding a type converter for it.
    Error:Cannot find getter for field.
    Error:Cannot find setter for field.
    Error:Cannot figure out how to read this field from a cursor.
    Error:Cannot find getter for field.
    Error:Cannot find setter for field.
    

    父类(BaseViewTypeData.class)是一个简单的类,用于处理回收器视图中的多种视图类型。

    public abstract class BaseViewTypeData extends BaseObservable {
    
    public static final int VIEW_TYPE_CALL = 0;
    public static final int VIEW_TYPE_SETTINGS_HEADER = 1;
    public static final int VIEW_TYPE_SETTINGS_TITLE_SUBTITLE = 2;
    public static final int VIEW_TYPE_SETTINGS_TITLE_SUBTITLE_SWITCH = 3;
    public static final int VIEW_TYPE_SETTINGS_DIVIDER = 4;
    public static final int VIEW_TYPE_SETTINGS_TITLE_SWITCH = 5;
    public static final int VIEW_TYPE_CALL_LOG_DATA = 6;
    public static final int VIEW_TYPE_CHECKBOX_TITLE_SUBTITLE = 7;
    
    @Ignore
    public abstract int getViewType();
    
    }
    
    1 回复  |  直到 7 年前
        1
  •  4
  •   CommonsWare    7 年前

    父类(BaseViewTypeData.class)是一个简单的类,用于处理回收器视图中的多种视图类型。

    BaseViewTypeData ,但带有 BaseObservable ,因为房间不知道如何处理 the BaseObservable fields .