Avatar ·

Android Room: how to correctly use LIKE in queries with parameters?

Hello everyone! I'm a beginner in Android development with Kotlin and I'm using Room to work with a local database. I have a User entity, and I want to implement user search by name using the SQL LIKE operator.

Here is my DAO entity:

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

I call this method from the ViewModel:

class UserViewModel(private val userDao: UserDao) : ViewModel() {
    fun search(query: String) {
        viewModelScope.launch {
            val users = userDao.searchUsers(query)
            // Process results
        }
    }
}