Search code examples
androidmysqlkotlinandroid-roomtypeconverter

@Query in Room with TypeConverter


Hi i use room with typeconverter it works perfectly

@Entity(tableName = "Library")
data class Library(@PrimaryKey var id : String,var categories: List<String> = listOf())

typeconverter

@TypeConverters
object LibraryConverters{
   @TypeConverter
   fun fromString(s : String) : List<String> = Gson().fromJson(s,object : TypeToken<List<String>>() 
                  {}.type)
   @TypeConverter
   fun toJson(l : List<String>) : String = Gson().toJson(l)
}

dao

@Dao
interface LibraryDao{
  @Query("Select * from Library")
  fun allPaged() : androidx.paging.DataSource.Factory<Int,Library>
  }

now i search anyway get all just for one category. thanks


Solution

  • in room my list is saved as just json string and i can get all for one category name with

    @Dao
    interface LibraryDao{
    @Query("select * from Library where categories like '%'|| :c ||'%'")
    fun all(c : String) : LiveData<List<Library>> 
    }