Если у меня отношение «один ко многим» Android Помещение между двумя таблицами, выражаемое следующим образом (на примере вырезания и вставки с сайта Android для разработчиков ):
@Entity
data class User(
@PrimaryKey val userId: Long,
val name: String,
val age: Int
)
@Entity
data class Playlist(
@PrimaryKey val playlistId: Long,
val userCreatorId: Long,
val playlistName: String
)
data class UserWithPlaylists(
@Embedded val user: User,
@Relation(
parentColumn = "userId",
entityColumn = "userCreatorId"
)
val playlists: List<Playlist>
)
затем, когда я использую Retrofit2 для получения вложенного объекта «один ко многим» UserWithPlaylists
от API, он ожидает JSON, который выглядит более или менее так:
{
"user" : {
"userID": 1,
"name": "whatever",
"age": 10
},
"playlists": [
{
"playlistId": 0,
"playlistName": "whatever"
},
{
"playlistId": 1,
"playlistName": "whatever"
}
]
}
Но мой API (и, насколько я могу судить, большинство API-интерфейсов) не встраивает данные пользователя в «user {}», как это. Он просто отображает данные пользователя без встраивания, например:
{
"userID": 1,
"name": "whatever",
"age": 10,
"playlists": [
{
"playlistId": 0,
"playlistName": "whatever"
},
{
"playlistId": 1,
"playlistName": "whatever"
}
]
}
Таким образом, Retrofit2 сможет создавать списки воспроизведения, но не найдет объект пользователя {}, поэтому я получу пустые объекты пользователя. но заполненные объекты списка воспроизведения.
Как бы я заставил Retrofit2 искать детали пользователя без встраивания?
Извинения за мой окольный способ задать этот вопрос. Я не знаю правильной терминологии для всего этого, что затруднило мне поиск.
спасибо!
Джон