例えば以下のようなSQLがあるとします。
SELECT * FROM users WHERE name LIKE "A*"
このSQLをRoomで動かす方法をいくつか説明します。
アノテーション内で||
で文字列を結合する方法
@Queryアノテーション内では、以下のように||
を使って文字列を結合させることができます。
@Query("SELECT * FROM users WHERE name LIKE :prefix || '%'") fun getUsers(prefix: String?): List<User>
引数を単純化する方法
%や_などを@Queryアノテーションに含めない方法もあります。
つまり、Daoクラスには以下のように記述し
@Query("SELECT * FROM users WHERE name LIKE :prefix") fun getUsers(prefix: String?): List<User>
以下のように呼び出します。
getUsers("A%")
参考
https://stackoverflow.com/questions/44184769/android-room-select-query-with-like