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

标签 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> 的意思的响应数据类?

最佳答案

在这种情况下,使用连接查询并创建一个提供这两种详细信息的通用 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/

相关文章:

android - 单击另一个单元格时如何更改 GridView 单元格的图像?

mysql - 获取 MySQL 查询中每个唯一键的值总和

mysql - 使用两种格式数据更新 mysql char 数据类型

java - OpenPojo JUnit 验证字段名称的缩写

java - 寻找让Web框架在服务器端更加面向对象的最佳方式

android - 带有半透明状态栏的叠加操作栏

android - 在 android 上的 hls 流上选择质量视频

java - Opencv 将 Mat 从 Android 传递到 JNI 错误

MYSQL - 有没有比使用包含 "OR"s 的大语句查询多个唯一值更好的方法

java - 如何动态地从pojo中获取字段