Android 房间类型转换器是否将多个DB列转换为一个字段?
有没有一种方法可以让一个房间的TypeConverter接受多个表字段并将它们合并到某个对象中 例如,假设我有一个表Foo,其中包含列Android 房间类型转换器是否将多个DB列转换为一个字段?,android,android-room,android-database,Android,Android Room,Android Database,有没有一种方法可以让一个房间的TypeConverter接受多个表字段并将它们合并到某个对象中 例如,假设我有一个表Foo,其中包含列INT分子、INT分母(一起表示一个分数)和INT单位(单位映射到计量单位的枚举)。我想把它们组合成MyScalar(分数(分子、分母)、单位)。例如,可能取一行(1,5,2)(其中2映射到MeasurementUnit.KG),并使用@TypeConverter将该行转换为MyScalar(分数(1,5),MeasurementUnit.KG) 现在我只是在做
INT分子
、INT分母
(一起表示一个分数)和INT单位
(单位映射到计量单位的枚举)。我想把它们组合成MyScalar(分数(分子、分母)、单位)
。例如,可能取一行(1,5,2)
(其中2
映射到MeasurementUnit.KG
),并使用@TypeConverter
将该行转换为MyScalar(分数(1,5),MeasurementUnit.KG)
现在我只是在做
data class MyEntity(
val numerator: Int,
val denominator: Int,
@TypeConverters(IntAndUnitConverter::class)
val unit: MeasurementUnit
) {
fun combine(): MyScalar {
return MyScalar(Fraction(numerator, denominator), unit)
}
}
与
似乎可以做到这一点,但我觉得让我的@Entity拥有@TypeConverters(SomeThreeColumnConverter::class)的想法很有吸引力,而且不用担心记住调用combine()之类的东西
我认为这是不可能的,但我想核实一下
data class MyScalar(val value: Fraction, val unit: MeasurementUnit)