4
我試圖將我們的項目中使用的房間,這,順便說一句,我認爲這是向前邁出的一步真棒。房間是否支持實體繼承?
我有以下結構:
public class Entity extends BaseObservable {
@PrimaryKey(autoGenerate = true)
@ColumnInfo(name = "_id", typeAffinity = ColumnInfo.INTEGER)
private long mId;
@ColumnInfo(name = "is_dirty")
@TypeConverters(BooleanTypeConverter.class)
private boolean mIsDirty;
// default constructor and accessors omitted for brevity
}
@Entity(tableName = "some_entities")
public class SomeEntity extends Entity {
@ColumnInfo(name = "type", typeAffinity = ColumnInfo.TEXT)
private String mType;
@ColumnInfo(name = "timestamp", typeAffinity = ColumnInfo.INTEGER)
private long mTimestamp;
// constructor, accessors
}
當我嘗試編譯我的項目,它失敗,沒有特定的錯誤。
如果我嘗試了一臺實體層級編譯它,一切都很好。
所以,我的主要問題是: 房間是否支持實體繼承?它能夠從父類Entity
類中獲得列定義嗎?
我也想知道,如果延長BaseObservable
(我需要讓數據綁定工作)可能會導致問題房? BaseObservable
有一個私有瞬態字段,所以這可能會導致代碼生成中的一些問題。
是否有任何推薦的模式來處理這個問題,還是我只需要拼合我的實體層次結構?
因此,我做了一些更多的測試,結果如下:YES,Room確實支持繼承和YES,所以擴展'BaseObservable'是一個問題。我正在從實體層次結構中刪除'BaseObservable'。 –