Avatar ·

Error "Cannot find setter for field" en Room con Kotlin: causas y solución

¡Hola, colegas! Soy nuevo en Kotlin y estoy intentando usar Room para almacenamiento local de datos. Tengo una entidad simple User: ```kotlin @Entity(tableName = "users") data class User( @PrimaryKey val id: Int, val name: String, val age: Int ) ``` Y un DAO: ```kotlin @Dao interface UserDao { @Insert suspend fun insert(user: User) @Query("SELECT * FROM users WHERE id = :id") suspend fun getUser(id: Int): User? } ``` Pero cuando ejecuto la aplicación, obtengo el error: ``` Cannot find setter for field - User.name ``` He leído que Room requiere setters para los campos, pero tengo un data class — se generan automáticamente. ¿Cuál podría ser el problema? Estoy usando Room versión 2.5.0 y Kotlin 1.8.0. Mi archivo Gradle está configurado con kapt, las anotaciones parecen estar conectadas. Por favor, indíquenme qué estoy haciendo mal. Por cierto, si cambio val por var, el error desaparece. Pero quiero que los campos sean inmutables. ¿Hay alguna forma de evitar esto sin cambiar a var?