Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 房间类型转换器是否将多个DB列转换为一个字段?_Android_Android Room_Android Database - Fatal编程技术网

Android 房间类型转换器是否将多个DB列转换为一个字段?

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) 现在我只是在做

有没有一种方法可以让一个房间的TypeConverter接受多个表字段并将它们合并到某个对象中

例如,假设我有一个表Foo,其中包含列
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)