В этом уроке более подробно рассмотрим возможности Entity. Как задать имя таблицы. Как задать имя или тип поля. Как создать составной или внешний ключ. Как создать индекс. Как использовать вложенные объекты.
Click here to read this article!
Урок 6. Room. Entity
Урок 6. Room. Entity
Последний раз редактировалось damager82 25 июн 2018, 12:50, всего редактировалось 3 раза.
- Димочка Ондроид
- Сообщения: 1
- Зарегистрирован: 07 май 2018, 07:19
Re: Урок 6. Room. Entity
Есть вопрос по поводу вложенных объектов. В уроке рассматривается следующий пример:
Однако не совсем понятно, как быть, если у меня будет массив этих самых Address[] или коллекция List<Address>.
Конечно, всегда есть вариант Конвертора: сделать из объекта JSON и записывать его как TEXT (и соответственно читать) - GSON в помощь
Но ведь это не тру путь для использования в ORM БД, и обязательно вылезет боком, например, если понадобятся какие-то сортировки или индексы.. Да и есть ограничения по размеру поля.
Собственно почему я в подобное упёрся? В сервера прилетают json объекты, которые без проблем парсятся в мои POJO (retrofit2 + gson). И было бы очень классно, если бы при работе с БД у меня на выходе были бы эти же самые POJO. И в простых объектах вполне достаточно использовать com.google.gson.annotations.* и import android.arch.persistence.room.* - всё по красоте. Но когда дело доходит до вложенных массивов объектов на ум приходят только костыли (вроде json-text полей).
Есть идеи? Буду очень признателен.
Код: Выделить всё
@Embedded
public Address address;
Конечно, всегда есть вариант Конвертора: сделать из объекта JSON и записывать его как TEXT (и соответственно читать) - GSON в помощь
Но ведь это не тру путь для использования в ORM БД, и обязательно вылезет боком, например, если понадобятся какие-то сортировки или индексы.. Да и есть ограничения по размеру поля.
Собственно почему я в подобное упёрся? В сервера прилетают json объекты, которые без проблем парсятся в мои POJO (retrofit2 + gson). И было бы очень классно, если бы при работе с БД у меня на выходе были бы эти же самые POJO. И в простых объектах вполне достаточно использовать com.google.gson.annotations.* и import android.arch.persistence.room.* - всё по красоте. Но когда дело доходит до вложенных массивов объектов на ум приходят только костыли (вроде json-text полей).
Есть идеи? Буду очень признателен.