如何使用房间查询非特定字段名称?

时间:2018-07-23 09:45:05

标签: android sqlite android-room

我想在android中进行一个WHERE查询,而无需命名特定的字段名称。 即,我想在不定义字段名称的情况下进行WHERE查询(它将在运行时确定)。

我试图做这样的事情:

@Query("SELECT COUNT(*) FROM Workspace WHERE :name = :value")
int countFieldsFor(String name, String value)

但是它不起作用...

我该如何实现?即使直接查询数据库(没有空间)

谢谢。

1 个答案:

答案 0 :(得分:1)

您可以使用@RawQuery并将生成的SQL传递给dao接口方法:

@Dao interface RawDao { 
    @RawQuery 
    User getUserViaQuery(SupportSQLiteQuery query); 
  } 

   SimpleSQLiteQuery query = new SimpleSQLiteQuery("SELECT * FROM User WHERE id = ? LIMIT 1", new Object[]{userId});
     User user2 = rawDao.getUserViaQuery(query);