Articles of android room

Android会议室:如何建立关系模型?

我刚刚开始与Room合作,虽然一切看起来都非常直观,但我目前还不清楚我究竟能如何处理关系。 由于SQLite是关系数据库,因此您可以指定对象之间的关系。 尽管大多数ORM库允许实体对象相互引用,但Room明确禁止这样做。 即使您不能使用直接关系,Room仍然允许您在实体之间定义外键约束。(来源: https : //developer.android.com/topic/libraries/architecture/room.html#no-object-references ) 你应该如何模拟多对多或一对多的关系? 这在实践中会是什么样子(示例DAO +实体)?

Android会议室:订单不工作

我正在使用新的Android ORM Room。 我遇到了问题。 带参数的ORDER BY不起作用。 如果我想使用ORDER BY参数中的字段,则无效。 没有任何吸引力。 @Query(“SELECT * FROM User ORDER BY :orderBY ASC”) List sortedFind(String orderBY); 但是,当我直接将哪个字段排序然后它按预期工作。 @Query(“SELECT * FROM User ORDER BY name ASC”) List sortedFind(); 它是android Room上的bug,还是我做错了什么?

Android Room连接的返回types

假设我想在两个实体Foo和Bar之间进行INNER JOIN : @Query(“SELECT * FROM Foo INNER JOIN Bar ON Foo.bar = Bar.id”) List findAllFooAndBar(); 是否可以强制这样的返回types? public class FooAndBar { Foo foo; Bar bar; } 当我尝试这样做时,我收到此错误: error: Cannot figure out how to read this field from a cursor. 我也尝试使表名称别名以匹配字段名称,但这也不起作用。 如果这不可能,我应该如何干净地构建包含两个实体的所有字段的兼容返回types?

室内数据库中的硬编码布尔查询

我正在构建一个Android应用程序,显示用户可能匹配的列表。 用户可以单击一个以喜欢用户,并在本地保存所有这些喜欢。 我可以编写一个查询来获取匹配列表,如下所示: @Query(“SELECT * FROM match WHERE liked = :liked ORDER BY match DESC LIMIT :limit”) fun getMatches(limit: Int = 6, liked: Boolean = true): Flowable<List> 我已经知道这很好用。 但是,我没有预见到任何情况下我会设置liked假,所以我很好奇是否有办法硬编码我的布尔条件? 如果我尝试: @Query(“SELECT * FROM match WHERE liked = true ORDER BY match DESC LIMIT :limit”) 我在编译时遇到以下错误: Error:(8, 0) Gradle: error: There is a problem with the […]

房间持久性库和内容提供商

最近几天我一直在花时间学习新的Android架构组件 。 在跟进了一些博客文章,文档和教程后,每个组件都变得清晰。 但突然间,我意识到我们的老朋友内容提供商 。 我可能听起来很傻,因为在写这个问题之前我花了很长时间搜索,我是唯一一个提出这个问题的人。 我没有任何有用的解决方案。 无论如何,如果我想用本地数据库建立一个应用程序,我现在显然会选择新的架构组件(实时数据,视图模型,房间),而不需要进一步思考,这将非常有助于使应用程序10x健壮。 但是如果我希望我的数据库数据可以访问其他应用程序,例如To Widget如何将Content Provider与Room集成?

查看使用Room Persistence Library创建的数据库的内容

有没有更简单的方法来查看在Android Studio中使用Room Persistence Library创建的数据库的内容?

Android应用程序中的Realm VS Room

我正在构建一个应用程序,我需要在其中使用数据库。 我正在考虑使用Room,因为它现在是新的和热门的。 但我也听说过很多关于Realm的好东西。 根据您的经验推荐我哪些更有可能的优势! 我做了我的研究并阅读了文档,但我没有经验可以自己理解 房间文件 领域文档

调用Rooms inMemoryBuilder方法时,Room Persistence Library运行时exception

按照设置Room余好库的教程时,我在Android设备上测试时遇到此错误。 java.lang.RuntimeException:找不到PackageName .AppDatabase的实现。 AppDatabase_Impl不存在 我知道有一个类似的问题,但问题是由于kotlin gradle问题。 可能重复 测试类: @RunWith(AndroidJUnit4.class) public class LocalDatabaseTest { private PhotoDao mPhotoDao; private AppDatabase mDb; @Before public void createDb() { Context context = InstrumentationRegistry.getTargetContext(); mDb = Room.inMemoryDatabaseBuilder(context.getApplicationContext(), AppDatabase.class).build(); mPhotoDao = mDb.photoDao(); } @After public void closeDb() throws IOException { //mDb.close(); } @Test public void testPreConditions() { assertNotNull(mDb); } 道: @Dao public […]

如何将Room Persistence Library导入Android项目

我最近看到Google I / O Room Persistence Library上宣布的新function与Android上的Sqlite数据库一起使用。 我一直在寻找官方文档 ,我没有find我应该导入到我的Android项目上的gradle文件的依赖项。 有人可以帮个忙吗?

Android Room:使用Room插入关系实体

我在Room使用Relation添加了一对多的关系 。 我在这篇文章中提到了在Room中为关系编写以下代码。 该post讲述了如何从数据库读取值但将实体存储到数据库中导致userId为空,这意味着2个表之间没有关系。 我不确定在具有userId值的情况下insert User和List of Pet插入数据库的理想方式是什么。 1)用户实体: @Entity public class User { @PrimaryKey public int id; // User id } 2)宠物实体: @Entity public class Pet { @PrimaryKey public int id; // Pet id public int userId; // User id public String name; } 3)UserWithPets POJO: // Note: No annotation required at this class […]