Android Room数据库响应来自两个不同表的数据

时间:2018-05-28 11:43:06

标签: android sql pojo android-room

所以我有两个表City和Street我写了一个查询返回City及其街道的一个查询响应看起来像这样

1 City1

1 Street1
2 Street2
3 Street3

我有这个回复的POJO类:

data class CityResponse(var city: City, var streets: List<Street>)

但是我无法编译,因为它会抛出错误:

error: Cannot figure out how to read this field from cursor private java.util.List<Street> streets

如何编写此响应数据类,房间会理解变量streets: List<Street>

的含义

1 个答案:

答案 0 :(得分:0)

在这种情况下,使用连接查询并创建一个提供两个细节的公共pojo类。然后进行如下查询..

    @Query("SELECT * FROM Student s LEFT JOIN BookIssue b ON s.StudentId =b.StudentId")
List<JoinData> getJoinData();

你也可以实现内连接和其他连接,但是制作一个可以同时提供两个表记录的pojo。

还有一种方法可以首先找到城市并进行循环,并根据城市名称找到街道并获取街道数据。