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

How to query unspecific field name using room?

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

我试过这样做:

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

但是没用...

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

谢谢。

您可以使用@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);