Avatar ·

Erro "Cannot find setter for field" no Room com Kotlin: causas e solução

Olá, colegas! Sou novo em Kotlin e estou tentando usar Room para armazenamento local de dados. Tenho uma entidade simples User: ```kotlin @Entity(tableName = "users") data class User( @PrimaryKey val id: Int, val name: String, val age: Int ) ``` E DAO: ```kotlin @Dao interface UserDao { @Insert suspend fun insert(user: User) @Query("SELECT * FROM users WHERE id = :id") suspend fun getUser(id: Int): User? } ``` Mas quando executo o aplicativo, recebo o erro: ``` Cannot find setter for field - User.name ``` Li que Room requer setters para os campos, mas eu tenho um data class — eles são gerados automaticamente. Qual pode ser o problema? Estou usando Room versão 2.5.0 e Kotlin 1.8.0. Meu arquivo Gradle está configurado com kapt, as anotações parecem estar conectadas. Por favor, me digam o que estou fazendo de errado? A propósito, se eu mudar val para var, o erro desaparece. Mas quero que os campos sejam imutáveis (immutable). É possível contornar isso sem?