android - 如何在 Room @Query 中使用参数字段?
问题描述
我有一个User
带有 field 的类id
,所以我想用 Room 运行以下查询:
@Query("SELECT * FROM ticket where user_id = :user.id")
LiveData<Ticket> loadFromUser(User user);
但是我在 Android Studio 上得到了错误标记,user.id
我在网上找到的所有示例都只使用@Query
方法的直接参数,通常是 aString
或 an int
。
是否可以在 Room 中使用对象的字段@Query
?如果是肯定的,那么引用它的正确方法是什么。
解决方案
您不能将这样的参数传递给房间。它不支持完整的表达语言。您必须使用原始类型来传递参数。像这样,
@Query("SELECT * FROM ticket where user_id = :user_id")
LiveData<Ticket> loadFromUser(String user_id);
推荐阅读
- php - 如何添加验证 required_if 许多字段为空不起作用?
- android - amplify-gradle-config.json(系统找不到指定的文件)
- excel - 如何根据Excel中的值在范围内添加连续刻度线
- variables - Safari 上 iframe 第 3 部分内的会话变量不起作用
- python - 区分空间NER中的国家和城市
- spring-boot - Spring Boot 应用程序中的 Maven 测试日志未使用配置的 Logback appender
- arrays - 如何在 for-of 或 map array.slice 中转换 for loop whit array.slice 以生成 col 和 row?
- postgresql - 存储英语短语的理想 PostgreSQL 数据类型是什么?
- javascript - 如何获取 HTML 元素的变量属性?
- global-variables - 一个变量可以继承其他变量的元素吗?