所以我有两张表 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>
的意思的响应数据类?
最佳答案
在这种情况下,使用连接查询并创建一个提供这两种详细信息的通用 pojo 类。然后像下面这样查询..
@Query("SELECT * FROM Student s LEFT JOIN BookIssue b ON s.StudentId =b.StudentId")
List<JoinData> getJoinData();
您还可以实现内部联接和其他联接,但创建一个同时提供两个表记录的 pojo。
还有另一种方法,首先找到城市并进行循环,然后根据城市名称查找街道并获取街道数据。
关于Android Room 数据库响应来自两个不同表的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50565624/