问题标签 [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.
android - 房间多对多关系不起作用
我遵循了 Android 中的相同教程,并在我的 Room 表中创建了多对多关系。但是我得到了一个奇怪的行为,它一直工作到第一步,但没有为关系工作。
大多数情况下,我创建了一些表并尝试将数据获取到两个级别。例如 Accounts-List-List 。
我的表格如下:
AccountWithChannels:
ChannelWithVpubs:
AccountWithChannelsAndVpubs:
ChannelVpubCrossRef:
在创建具有交叉引用的关系后,我调用了以下方法来获取包含 Account、List 和 List 的所有数据。
但奇怪的是我得到了帐户和频道列表。但 Vpub 列表始终返回为 0。
我也尝试过外国人,但没有帮助。我确定我在这里做错了什么,我无法检测到。但是数据正确插入,包括 Vpub 在内的所有表也都有数据。
kotlin - 可以直接在房间上映射这个场景吗?
我有这些关系:
客户 > 地址
客户 > 物业
物业 > 地址
所以我正在尝试这样做:
PropertyWithAddress 在哪里
但它不起作用,因为 PropertyWithAddress 不是数据库实体/视图。
我的问题是更可能使用一些房间机制来映射这些关系。我知道我可以直接进行查询并加载对象,但我想知道房间是否以任何方式支持这一点。
java - 删除旧表并创建新表并预填充它 - RoomDatabase
我正在使用java在 android studio 中创建一个简单的 android 应用程序。我有一个 roomdatabase db,其中有一个名为 user 的表,它有四列 名称、职业、年龄、描述,并且我已经使用我在 sqlite studio 中制作的数据库进行了预填充。
现在,我想在表上添加一个列姓氏,但我想删除所有预填充的数据并使用一个包含姓氏的新数据库再次预填充该表。
起初我想使用自动迁移并添加一个新列。但我不知道如何删除所有现有数据并再次预填充数据库。
我想删除现有数据,因为我想更改列描述中存在的所有信息。与列名一样,现在它包含全名,在某些情况下写成行“name surname”,其他时候写成“surname name”,例如“Will Smith”“Smith Will”。现在我想在单独的列名称和姓氏中有姓名和姓氏
有人可以推荐我一些东西吗?先感谢您
android - Android Room belongsTo(一对一)关系
假设我有一个这样的文章表:
还有一个参考表有点像这样:
现在我想在 fetching 的同时获取 Article main reference
,secondary reference
另一个 POJO 是这样的:
但我不确定我写的是@Relation
注释的正确用法。
NB:我来自 Laravel/Eloquent 背景,所以我更熟悉这些belongsTo
, hasOne
, hasMany
, belongsToMany
, 等关系类型。
谢谢。
android - 我试图在房间数据库中添加数据但无法添加超过 50 行
我试图在房间数据库android中添加一些数据。但是在添加时只有 50 行可见或在 db 中输入。没有更多的数据可以添加到 db 中。我也检查了我的日志,但没有错误或异常。我打印日志中的每个数据,它在日志中可见但在 db 中不可用。创建房间数据库时没有限制。如果有人知道出了什么问题,请帮助我
android - 具有一对一关系的房间数据库,如地址、城市和州
我在 android 文档中查找了我的问题的答案,但我找不到它。要使用这些类中包含的信息创建 recyclerview,如何在 Room 中获取此信息的列表
如何获取列出类的地址列表?
如何在 ANSI SQL 中得到这样的结果:
android - 唯一约束在 android 的房间数据库中不起作用
这是我的实体类,其中 beginTime 和 lastTimeUsed 我保持唯一但是当我尝试运行应用程序时,我第一次有 8 个数据即将到来并存储在如下屏幕的表格中
现在我正在尝试再次插入具有 10 个值的数据,其中 8 个与之前的 2 个新值相同,但是这次 isChild 将是 1,当它尝试插入时,我不知道为什么它会更新前一个值,请参见下面的屏幕.
您可以在此屏幕中看到所有先前的值更新 ischild true 以及另外两个值条目
我想要的是,如果 8 条记录已经插入!ischild 和 lastTimeused 和 begtime 在我尝试插入另一个时是相同的,那么它应该插入只插入新的 lasttime used 并请求时间请帮助我我做错了什么
android - 消除“加入”实体中的列名冲突
我有 2 个实体:
我想加入他们的查询:
进入这个实体:
但是,当我这样做时,我会返回一个 BookWithAuthor 对象,其中 author.id 和 book.id 是相同的 id,在这种情况下它们都是作者的 id。如何消除“join”对象中实体中的“id”属性冲突?
android-room - Android Room + AutoValue 打破了模式生成
我有一个相当复杂(尽管并非完全不寻常)的场景,它似乎与 Android Room 版本2.4.0
(特别是2.4.0-beta01
. 它适用于2.4.0-alpha05
)中断了。
我将把代码放在下面,但我现在会尝试用简单的英语描述我的情况。
基本上,我有两个引用同一个表/实体的数据库。该实体是使用 AutoValue 创建的,直到 为止,它与注释2.4.0-alpha05
一起工作得很好。@AutoValue.CopyAnnotations
但是,一旦我升级到2.4.0-beta01
,就不再检测到歌曲表名称:
There is a problem with the query: [SQLITE_ERROR] SQL error or missing database (no such table: word_table)
事不宜迟,这里是相同的示例代码(改编自开发人员说明)
更新:
当我查看生成的模式时,只有WordRoomDatabase1
填充,虽然很混乱:
更新 2:
我更改Word.java
为不使用 AutoValue,效果很好:
android - Room Android 忽略 Dao 类中的@Query 条件(奇怪)
我发布这个是因为 stackoverflow 上已经存在同样的问题,但没有解决方案。我正在使用 Room 库进行数据库操作。我用@Embedded和@Relation用其他表创建了数据类。现在的问题是,当我在主表和连接表上放置具有多个 where 条件的连接查询时,它会返回连接表的所有/不正确数据。这表明它忽略了我在 DAO 类查询中设置的条件。重要的是,当我在外部数据库上运行相同的查询(在 chrome 中使用 stetho)时,它会按预期工作。请帮助我解决这个问题,因为这是非常关键的问题。房间版本:2.4.0
这是数据类:
这是 DAO 类方法:
上面的查询返回 zoneId = 1 的数据类的 productZone 字段中的数据。而它应该只返回 zoneId = 3 的区域。