Android Room Persistence Library - 如何查找 ID 列表中包含 ID 的实体?
Android Room Persistence Library - How to find entities with ids contained in list of ids?
我正在尝试在我的 DAO 中执行以下查询。
@Query("SELECT * FROM objects WHERE obj_id IN :ids")
List<Object> queryObjects(List<String> ids);
它给我这个编译时错误:
Error: no viable alternative at input 'SELECT * FROM objects WHERE obj_id IN :ids'
List<String> ids
以及 String... ids
和 Sring[] ids
都不起作用。但是,由于我不知道在编译时我将拥有多少个 id,因此,我需要一个 list/array 而不是可变参数。
如何使这个 SQL 查询有效?
你需要括号:
@Query("SELECT * FROM objects WHERE obj_id IN (:ids)")
List<Object> queryObjects(List<String> ids);
(FWIW,我提交 an issue 以尝试在此处获得更好的错误消息)
您可以设置输入列表或输入数组。
然后像这样进行查询
e.g. String[] ids or List ids
Query = @Query("select * from objects where obj_id in (:ids)")
我正在尝试在我的 DAO 中执行以下查询。
@Query("SELECT * FROM objects WHERE obj_id IN :ids")
List<Object> queryObjects(List<String> ids);
它给我这个编译时错误:
Error: no viable alternative at input 'SELECT * FROM objects WHERE obj_id IN :ids'
List<String> ids
以及 String... ids
和 Sring[] ids
都不起作用。但是,由于我不知道在编译时我将拥有多少个 id,因此,我需要一个 list/array 而不是可变参数。
如何使这个 SQL 查询有效?
你需要括号:
@Query("SELECT * FROM objects WHERE obj_id IN (:ids)")
List<Object> queryObjects(List<String> ids);
(FWIW,我提交 an issue 以尝试在此处获得更好的错误消息)
您可以设置输入列表或输入数组。
然后像这样进行查询
e.g. String[] ids or List ids
Query = @Query("select * from objects where obj_id in (:ids)")