Android房间-如何添加类型转换器
我目前正在学习Room持久性,我只想问一下如何为自定义类创建TypeConverterAndroid房间-如何添加类型转换器,android,android-room,Android,Android Room,我目前正在学习Room持久性,我只想问一下如何为自定义类创建TypeConverter 品牌.kt @Parcelize @Entity(tableName = "brand") data class Brand ( @PrimaryKey(autoGenerate = false) @ColumnInfo(name = "id") val id: Int, @ColumnInfo(name = "name") val name: String ) :
品牌.kt
@Parcelize
@Entity(tableName = "brand")
data class Brand (
@PrimaryKey(autoGenerate = false)
@ColumnInfo(name = "id")
val id: Int,
@ColumnInfo(name = "name")
val name: String
) : Parcelable
@Parcelize
@Entity(tableName = "product")
data class Product(
@PrimaryKey(autoGenerate = false)
@ColumnInfo(name = "id")
val id: Int,
@ColumnInfo(name = "brand")
val brand: Brand, // This variable is my problem, I don't know how to fix it...
@ColumnInfo(name = "name")
val name: String,
@ColumnInfo(name = "price")
val price: Int
) : Parcelable
Product.kt
@Parcelize
@Entity(tableName = "brand")
data class Brand (
@PrimaryKey(autoGenerate = false)
@ColumnInfo(name = "id")
val id: Int,
@ColumnInfo(name = "name")
val name: String
) : Parcelable
@Parcelize
@Entity(tableName = "product")
data class Product(
@PrimaryKey(autoGenerate = false)
@ColumnInfo(name = "id")
val id: Int,
@ColumnInfo(name = "brand")
val brand: Brand, // This variable is my problem, I don't know how to fix it...
@ColumnInfo(name = "name")
val name: String,
@ColumnInfo(name = "price")
val price: Int
) : Parcelable
现在我遇到了一个错误,它说
错误:无法确定如何将此字段保存到数据库中。可以考虑为它添加一个类型转换器。< /强>
并指向我的产品
类
我试图给我的产品
类添加一个注释,比如@TypeConverters(Brand.class)
,但仍然出现了错误,我真的不知道该怎么办
非常感谢您的帮助。您可以使用
@Embedded
@Embedded
val brand: Brand,
从
可以用作实体或Pojo字段上的注释,以发出信号
嵌套字段(即注释字段类的字段)可以
在SQL查询中直接引用
您好,感谢您的回复,通过使用
@Embedded
我现在面临一个新的错误错误:一个字段只能用以下之一进行注释:ColumnInfo、Embedded、Relation
对此有何想法?删除@ColumnInfo
。