1
resposta

Problema ao usar o Room e @Ignore

Estou com um problema ao usar a anotation @Ignore do room com o KSP, onde o codigo não compila se tiver essa anotação nas entidades, o que consegui encontrar ate agora e que seria um problema no KSP, existe alguma solução para isso? o que consegui fazer foi renomear o nome da coluna para que consiga fazer build do projeto Insira aqui a descrição dessa imagem para ajudar na acessibilidadeDa forma que está acima ele sempre compila e da certo, porém dessa foram da erro: Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Uma solução que encontrei (e que ja está no código) seria a do construtor, mas mesmo com ela, não compila o código. Estou usando a versão do Room 2.7.1

1 resposta

Olá, Jefferson, como vai?

Uma forma interessante de tentar lidar com esse problema é testar o uso de @Transient no lugar do @Ignore. Dessa forma, o Room ignora esses campos durante o processamento da entidade e pode evitar o erro de compilação com o KSP. Por exemplo:

@Entity
data class Chat(
    @PrimaryKey(autoGenerate = true)
    val id: Long = 0L,
    val owner: String = "",
    val profilePicOwner: String = "",
    @Transient
    val lastMessage1: String = "",
    @Transient
    val dateLastMessage2: String = ""
)

Captura de tela do Android Studio mostrando o código Kotlin para uma classe de dados de bate-papo e uma interface de aplicativo móvel exibindo threads de mensagens

Além disso, vale a pena verificar se você está utilizando a versão mais recente do KSP, já que algumas versões anteriores apresentavam bugs relacionados a essa situação. Manter o KSP atualizado pode ajudar a evitar esses erros de processamento.

Espero ter ajudado!

Siga firme nos seus estudos e conte com o fórum sempre que precisar.

Abraços :)

Caso este post tenha lhe ajudado, por favor, marcar como solucionado