Вложенные отношения одного типа - PullRequest
0 голосов
/ 02 июля 2018

Согласно документация отношений может быть связана только с классами Pojo. Как определить вложенную зависимость одного типа?

@Entity(tableName = "humans")
data class Human {

   @Relation
   val children:List<Human>

}

1 Ответ

0 голосов
/ 03 июля 2018

Согласно этой средней записи блога, вы можете использовать конвертер типов для преобразования списка в строку и наоборот.

class HumanTypeConverters {

    private var gson = Gson()

    @TypeConverter
    fun stringToHumanObjectList(data: String?): List<Human> {
        if (data == null) {
            return Collections.emptyList()
        }
        return gson.fromJson(data, object : TypeToken<List<Human>>() {}.type)
    }

    @TypeConverter
    fun humanObjectListToString(humanObjects: List<Human>): String = gson.toJson(humanObjects)
}

и добавить эту аннотацию следующим образом

@Database(entities = [Human::class], version = 1)
@TypeConverters(HumanTypeConverters::class)
abstract class HumanDatabase : RoomDatabase() {
    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...