【问题标题】:Android Room - Cannot figure out how to save this field into database. You can consider adding a type converter for itAndroid Room - 无法弄清楚如何将此字段保存到数据库中。您可以考虑为其添加类型转换器
【发布时间】:2020-07-08 08:23:02
【问题描述】:
@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;```

我是 Room 实施的新手,所以我不知道如何解决这个问题。

【问题讨论】:

    标签: android database kotlin android-room


    【解决方案1】:

    Country 是与 GymAddress 的关系。您需要确定它具有哪种类型的关系,GymAddress 可以有多个 Country.class 吗?如果是一对一关系,则可能不是这样,您需要相应地注释它

    @Embedded
    

    房间很棒,关系需要额外的数据类来保存和检索等。这可能会变得很痛苦。

    查看Android Room Relationships以进一步了解它

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2021-02-16
        • 2023-01-15
        • 2020-04-27
        • 1970-01-01
        • 1970-01-01
        • 2021-11-04
        • 2019-05-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多