问题标签 [android-room-relation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
681 浏览

android - Android Room Embedded Relation 忽略 where 条件

我有一组带有@Relations 的复杂表。这是我的第一张桌子:

第二张表:

这是我的第一个 @Embedded 符号:

第二个嵌入关系:

问题是我不能做一个简单的查询:

运行此查询将返回表中的所有值。它似乎忽略了 where 子句,尽管嵌入式关系有效 - 列表结构就像我预期的那样。如果您使用房间关系,您可以在 where 子句中执行条件吗?

编辑

我已经创建了这个测试文件,显然您可以使用 Where 子句进行查询。

0 投票
2 回答
1698 浏览

android - Room @Relation 只返回表格的第一项

我在 Android 中为我的数据库使用 Room,我也在使用 @Relation(基于此:https ://developer.android.com/reference/android/arch/persistence/room/Relation.html )从关系中获取数据与 ForeinKey 一对多关联的实体。我想要得到的是一个使用@Relation 的 RoomArea 实体的带有 roomAreaNames 的列表。该代码没有编译错误,问题是我只从@Relation 返回的是一个大小为 1 的列表(只有表中的第一个对象)而不是完整列表。

表:

道查询:

这是@Relation(只给我一个大小为 1 的列表)我需要与 buildingId 相关的所有房间区域

谢谢你。

0 投票
3 回答
1324 浏览

android - Moshi 和房间映射关系

我有Json我想用来映射Moshi和存储的东西Room

我准备了我的模型

目前,我已error: Cannot figure out how to save this field into database. 阅读此https://developer.android.com/training/data-storage/room/relationships。但是,如果我要像文档中那样对关系建模,我不知道如何让 Moshi 映射关系?你找到解决这个问题的最简单的方法了吗?

0 投票
0 回答
183 浏览

android - Android房间@Relation left join

假设我有两个实体,问题和答案,它们具有一对多的关系,每个问题可能有 0..n 个答案。它们被定义为:

如果此用户尚未回答问题,我想查询数据库并获取QuestWithAns包含所有问题的对象列表以及只有一个或 null 的答案。userId我尝试在 DAO 对象中实现此查询,如下所示:

但是对于这个用户没有回答的问题,room 会返回任何其他用户的最后一个答案,而不是 null。

谁能帮我确定我做错了什么?有没有办法用@Relation 来实现这个查询?

0 投票
0 回答
377 浏览

android-sqlite - 具有多列的@Relation Room DB

如果我想关联 2 个表并且关系不仅是一列而是更多,有没有办法使用带有更多参数的 Room @Relation 注释来实现?也许像下面这样

所以连接有多个约束?

0 投票
1 回答
446 浏览

java - Android ROOM-如何在 RecyclerView 中显示来自 3 个相关实体的数据?

基本上,我有 3 个相关实体需要从中获取数据:练习、锻炼锻炼连接和锻炼锻炼目标。

ER图

我需要在 RecyclerView 中显示以下内容:

在此处输入图像描述

(根据所选锻炼,锻炼 ID 为 1、2、3 或 4,显示的锻炼由锻炼 ID 确定。)

实现这一点的最佳方法是什么?

演习实体

运动目标实体

连接实体

数据库

0 投票
1 回答
33 浏览

java - 在房间中的实体之间创建关系

我正在尝试在android中实现按名称搜索地点。我创建了两个实体,Word并且Place.

我还创建了另一个来模拟和data class之间的一对多关系。WordPlace

我遇到的问题是,当我查询得到的数据时null

这是 中的查询功能dao

我需要帮助才能使实施工作。

0 投票
1 回答
1270 浏览

android - Android房间数据库中的多个表

我想知道如何在 android room 数据库中拥有多个表并使用关系?我需要一点解释,或者如果你有一个很好的教程,我将不胜感激

谢谢。

0 投票
0 回答
385 浏览

android - 使用房间关系时如何通过查询访问子实体的列?

我有两个实体订单和客户。每个订单与零个或单个客户相关联,每个客户与零个或多个订单相关联。

我想查询对应客户的订单表是否存在。

所以,我按照文档创建了关系。

我可以使用dao查询订单列表和对应的客户。

但是当我尝试访问子实体的列时,我得到了编译错误。例如,我想查询客户名称为 **** 的订单。

因此,我更新的查询:

是否可以在 where 子句中访问子实体的属性?

那么问题来了,这种关系是如何运作的!?我发现它首先查询订单实体,然后查询客户实体。如果我错了,让我展示正确的方法。

我有另一种查询多个表的解决方案,但我无法使用房间提供的关系功能,或者我遗漏了一些东西!

我可以按照这个答案使用连接和映射到对象。

询问:

但是,仍有疑问。如何映射订单和客户表的所有列?我是否需要as在查询中映射所有客户列,或者有另一种简化的方法可用?如果两个表都有更多列并且我需要获取第一个和第二个表的所有列,那么我的查询将足够长。我想知道是否有最简单的方法来映射两个表而不使用或最少使用as第二个表的所有列。

帮助我采用正确的方法和更好的可用解决方案。

0 投票
0 回答
83 浏览

android - 带有嵌套动态 WHERE 子句的 Room @Relation

假设我有每个可以有许多类别的项目:

我可以使用它检索所有具有类别的项目,效果很好:

如何使用 Room 或 SQL 根据 ID 检索具有特定类别的项目?

我不认为这是可能的,显然Categories 列表是POJO 列表,它是一个嵌套关系。那么在 SQL 中使用原始查询执行此操作的唯一方法是什么?

是我发现的最接近的问题,但此处答案中的 DatabaseView 对其 WHERE 子句使用硬编码字段,我需要能够在运行时指定类别 ID。