Android房间-如何添加类型转换器

Android房间-如何添加类型转换器,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 ) :

我目前正在学习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
) : 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