【发布时间】:2019-01-30 10:53:01
【问题描述】:
我从 sqlite 迁移到 Room 时遇到问题。我有 1 个父类和 1 个子类以及与之对应的 2 个表。
我有如下继承
public class Sms {
int _id;
String sender;
String body;
Date date;
}
public class Event extends Sms {
String eventName;
long eventDueDate;
}
我有表格
SmsTable >>
_id INTEGER NOT NULL primary key autoincrement,
sender TEXT not null,
body TEXT not null,
date INTEGER not null
EventTable >>
_id INTEGER NOT NULL primary key autoincrement,
sms_id INTEGER,
eventName TEXT not null,
eventDueDate INTEGER
现在,当我将 Event 定义为 @Entity(tableName = "EventTable") 时,它给了我一个错误,即 Migration 没有按预期的 TableInfo 正确处理事件,并且发现 TableInfo 不匹配。
Expected Table Info 包含发件人、正文、日期等列,而我的 EventTable 没有这些列。
如何迁移继承自 Sms 但表格未展平的 Event 类?
附:我无法展平 EventTable,因为即使没有 Event,SmsTable 也存在,我还需要将 Sms 转换为 Entity。
【问题讨论】:
标签: android-sqlite database-migration android-room