Avatar ·

Android Room : comment utiliser correctement LIKE dans les requêtes avec paramètres ?

Bonjour à tous ! Je suis débutant en développement Android avec Kotlin et j'utilise Room pour travailler avec une base de données locale. J'ai une entité User et je souhaite implémenter une recherche d'utilisateurs par nom en utilisant l'opérateur SQL LIKE.

Voici mon DAO :

@Dao
interface UserDao {
    @Query("SELECT * FROM users WHERE name LIKE '%:searchQuery%'")
    suspend fun searchUsers(searchQuery: String): List<User>
}

J'appelle cette méthode depuis le ViewModel :

class UserViewModel(private val userDao: UserDao) : ViewModel() {
    fun search(query: String) {
        viewModelScope.launch {
            val users = userDao.searchUsers(query)
            // Traitement des résultats
        }
    }
}

Le problème est que la requête ne retourne aucun résultat, alors que la base contient des enregistrements avec des noms contenant la chaîne recherchée. J'ai essayé de passer différentes valeurs — noms complets, parties de chaînes — rien ne fonctionne.