此问题通常由模糊查询字符串中的通配符引起。在Android Room中,通配符必须转义,否则查询将无法正常工作。可以使用'\”字符转义以下字符:'%','_'和''本身。以下是一个示例:
String searchString = "John%";
String escapedString = searchString.replace("\\", "\\\\")
.replace("%", "\\%")
.replace("_", "\\_");
List users = userDao.searchUsers("%" + escapedString + "%");
在此示例中,我们首先使用replace()方法将转义字符插入原始查询字符串中。然后,我们使用Room DAO的searchUsers()方法执行模糊查询。
注意:如果要在查询中使用rawQuery()方法,则必须手动转义通配符。