Android 对象数组的 Room 数据库嵌套对象引用
Android Room Database Nested Object Reference for array of objects
我有一个 class 结构
Class x {
int a;
int b;
Y[] yList;
}
Class Y {
int m;
int n;
}
我正在使用数据绑定、Room 和 Dagger。我收到编译错误 'cannot find class DatabindingComponent',可能是因为 Room 不允许持久化嵌套对象。为了启用,我使用了 @Embedded 注释,但仍然出现相同的错误。但是,如果我使用 @Ignore 注释指示 Room 不处理此字段;编译成功。
如何在没有外键的情况下引用房间数据库的嵌套对象数组?
请参考
https://developer.android.com/topic/libraries/architecture/room.html#no-object-references
https://developer.android.com/reference/android/arch/persistence/room/Ignore.html
https://developer.android.com/reference/android/arch/persistence/room/Embedded.html.
How to reference nested array of objects for Room Database without foreign key?
如果您不希望 Y
成为具有自己的 table 的 @Entity
,我知道的唯一选择是使用 @TypeConverters
:
定义两个带有 @TypeConverter
的 static
方法,通过使用 JSON)
在某处使用 @TypeConverters
注册 class 持有这些方法(例如,在您的 RoomDatabase
subclass 上)
这使用集合 classes(例如,List
、Set
)。我猜它适用于 Java 数组 (Y[]
),尽管我没有尝试过。
我有一个 class 结构
Class x {
int a;
int b;
Y[] yList;
}
Class Y {
int m;
int n;
}
我正在使用数据绑定、Room 和 Dagger。我收到编译错误 'cannot find class DatabindingComponent',可能是因为 Room 不允许持久化嵌套对象。为了启用,我使用了 @Embedded 注释,但仍然出现相同的错误。但是,如果我使用 @Ignore 注释指示 Room 不处理此字段;编译成功。
如何在没有外键的情况下引用房间数据库的嵌套对象数组?
请参考 https://developer.android.com/topic/libraries/architecture/room.html#no-object-references https://developer.android.com/reference/android/arch/persistence/room/Ignore.html https://developer.android.com/reference/android/arch/persistence/room/Embedded.html.
How to reference nested array of objects for Room Database without foreign key?
如果您不希望 Y
成为具有自己的 table 的 @Entity
,我知道的唯一选择是使用 @TypeConverters
:
定义两个带有
@TypeConverter
的static
方法,通过使用 JSON)在某处使用
@TypeConverters
注册 class 持有这些方法(例如,在您的RoomDatabase
subclass 上)
这使用集合 classes(例如,List
、Set
)。我猜它适用于 Java 数组 (Y[]
),尽管我没有尝试过。