当前位置: 首页 > 知识库问答 >
问题:

如何使用Android Room进行单行查询

仲孙华奥
2023-03-14

如何使用RxJava的Android Room进行单行查询?我可以查询项目列表,没有问题。这里,我想找出是否存在特定的行。根据文档,如果不存在行,我可以返回Single并检查EmptyResultSetException异常。

我可以吃一些类似的东西:

@Query("SELECT * FROM Users WHERE userId = :id LIMIT 1")
Single<User> findByUserId(String userId);

如何使用此呼叫?看起来有一些onError/onSuccess,但在单个上找不到这些方法

usersDao.findByUserId("xxx").???

任何可行的例子都会很好!

共有1个答案

鄂育
2023-03-14

根据文档,如果不存在行,我可以返回Single并检查EmptyResultSetException异常。

或者,如果您通过其他方式处理后台线程,只需返回User

@Query("SELECT * FROM Users WHERE userId = :id")
User findByUserId(String id);

如何使用此呼叫?

usersDao.findByUserId("xxx")
  .subscribeOn(Schedulers.io())
  .observeOn(AndroidSchedulers.mainThread())
  .subscribe(user -> { ... }, error -> { ... });

这里,我为用户和错误显示了两个lambda表达式。您可以使用两个消费者对象。我还假设您对androidscheduler具有依赖关系rxandroid。mainThread(),并且您希望用户在该线程上传递给您。

IOW,您使用它的方式与使用RxJava中的任何其他的方式相同。详细信息将根据您的需求而有所不同。

 类似资料:
  • 问题内容: 如何使用NHibernate进行此查询 我正在使用NHibernate3。 我尝试使用新的Linq提供程序来完成此操作,但未成功。只要它产生上面确切的sql查询,我就不在乎它的执行方式。我希望编写一个强类型查询,如果可能的话,不要使用魔术字符串。 我是NHibernate的新手,所以这个问题可能很简单。 这是更多信息 我将Fluent NHibernate与AutoMappings结合

  • 我是新来的Node.js,并试图检查如果电子邮件已经通过发送电子邮件作为一个url参数从iOS应用程序。它不起作用,不确定我做错了什么。 我无法console.log前端发送的VSCode中的电子邮件参数,它在XCODE(http://localhost:3000/api/user/email/test@gmail.com)中打印,我知道后端正在获取GET请求。 我的路由器代码是: 非常感谢。

  • 问题内容: 基于这两个表(及其对应的实体): 我必须列出所有配置文件,并按其项目的最佳排名进行排序(实际上,这是“顶级配置文件”列表)。 这是您可以在PHPMyAdmin中执行的SQL请求,例如: 我是JPA的新手,我找不到一些使用CriteriaBuilder进行LEFT OUTER JOIN的示例(如果这样做是正确的话)。 如果有人能以正确的方式引导我,我将不胜感激(我不是要求别人做我的工作,

  • 本文向大家介绍Java如何使用elasticsearch进行模糊查询,包括了Java如何使用elasticsearch进行模糊查询的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了Java如何使用elasticsearch进行模糊查询,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 使用环境上篇文章本人已书写过,需要maven坐标,ES连

  • 我一直在研究这三个网站,了解如何使用log4j2创建地图查找(或任何其他查找): http://logging.apache.org/log4j/2.x/manual/extending.html#Lookups http://logging.apache.org/log4j/2.x/manual/lookups.html http://logging.apache.org/log4j/2.x/m

  • 问题内容: 我有一个接受查询,通过SQL服务器运行它,检查错误并返回结果的类。如何对该课程进行单元测试? 编辑 :我将尝试更精确: 负责将查询传递到服务器。为了测试它是否确实这样做,抛出正确的异常等,我想将其连接到将要填充的模拟数据库。我的问题是- 怎么做?如何创建一个模拟“服务器”来处理呼叫? 问题答案: 只需传递一个SQL查询,然后将返回的结果与预期的结果进行比较即可。简单的。JUnit是一个