当前位置: 首页 > 知识库问答 >
问题:

Android Room-无法确定如何将此字段保存到数据库中。可以考虑为其添加类型转换器。

裴金鑫
2023-03-14
@Entity(tableName = "gym_address_table")
data class GymAddress(@PrimaryKey val id: String, val country: Country, val unitNumber: String)

@Entity(tableName = "country_table")
data class Country(
    @PrimaryKey
    val id: String,
    val isoCode: String,
    val dialCode: String,
    val name: String,
    val flagPhoto: String
)

所以,当我试图编译它时,我得到了这个错误:


Cannot figure out how to save this field into database. You can consider adding a type converter for it.

private final com.gymapp.main.data.model.country.Country country = null;```

我不熟悉房间实施,所以我不知道如何解决这个问题。

共有2个答案

文增
2023-03-14

显然,错误是Country为null,对象为null,因此它不会保存为null。主要的问题是您没有传递值,因此您可能需要一个类来通过一个名为Save的方法传递值,该方法在数据库中保存国家(对象)

晋越彬
2023-03-14

国家是与国家的关系。你需要决定它有哪种类型的关系,一个地址可以有多个国家。班如果是一对一关系,则可能不是这样,您需要使用

@Embedded

房间很好,关系需要额外的数据类来保存和检索等,这可能会成为一个难题。

查看Android房间关系,进一步了解它

 类似资料: