Kotlin 使用Room实体类作为模型,同时使用数据库中的ionre字段
我正在使用实体类作为API响应的模型它有Kotlin 使用Room实体类作为模型,同时使用数据库中的ionre字段,kotlin,entity,android-room,data-class,Kotlin,Entity,Android Room,Data Class,我正在使用实体类作为API响应的模型它有列表字段,我希望在序列化阶段使用它,但我希望从存储在数据库中忽略它,因为它需要类型转换器,我不希望这样 @Entity(tableName = "USER") data class User( @Ignore @SerializedName("address") val address: List<Address>?, @SerializedName("auth_token") @ColumnInfo(
列表
字段,我希望在序列化阶段使用它,但我希望从存储在数据库中忽略它,因为它需要类型转换器,我不希望这样
@Entity(tableName = "USER")
data class User(
@Ignore
@SerializedName("address")
val address: List<Address>?,
@SerializedName("auth_token")
@ColumnInfo(name = "authToken")
val authToken: String?)
提示:我不想将此字段存储在db我想问题在于您没有为变量地址指定默认值。试试这个:
@Entity(tableName = "USER")
data class User(
@SerializedName("auth_token")
@ColumnInfo(name = "authToken")
val authToken: String?
@Ignore
@SerializedName("address")
val address: List<Address>? = null,
)
@实体(tableName=“USER”)
数据类用户(
@SerializedName(“身份验证令牌”)
@ColumnInfo(name=“authToken”)
val authToken:字符串?
@忽略
@序列化名称(“地址”)
val地址:列表?=空,
)
错误告诉您出了什么问题:
您可以有[…]个构造函数,其参数与字段匹配(按名称和名称)
(类型)
Room必须知道如何从数据库构造对象。在参数上使用@Ignore时,它不会列为字段。这就是参数和字段不匹配的原因
因此,不应在构造函数中放置@Ignored字段。
尝试执行以下操作:
@Entity(tableName = "USER")
data class User(
@SerializedName("auth_token")
@ColumnInfo(name = "authToken")
val authToken: String?) {
@Ignore
@SerializedName("address")
val address: List<Address>? = null
@实体(tableName=“USER”)
数据类用户(
@SerializedName(“身份验证令牌”)
@ColumnInfo(name=“authToken”)
val authToken:字符串?){
@忽略
@序列化名称(“地址”)
val地址:列表?=null
}
@Entity(tableName = "USER")
data class User(
@SerializedName("auth_token")
@ColumnInfo(name = "authToken")
val authToken: String?) {
@Ignore
@SerializedName("address")
val address: List<Address>? = null