Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] @Update vs @Insert(onConflict = REPLACE)

Ola pessoal!

Por que não utilizar o @Update nesse caso de editar as informações?

2 respostas
solução!

Olá, Luiz!

No caso de editar informações, você pode utilizar tanto a anotação @Update quanto a anotação @Insert(onConflict = REPLACE), porém, cada uma tem suas particularidades.

Nosso projeto em específico reutiliza o mesmo formulário para criação e atualização da informações, então para não precisar criar a lógica de saber se estamos criando ou editando um item, o onConflict vem bem a calhar já foi desenvolvido para essas situações.

A anotação @Update é utilizada quando você deseja atualizar um registro existente no banco de dados. Ela permite que você defina os parâmetros necessários para a atualização, como o ID do registro a ser atualizado e os novos valores a serem inseridos, poderíamos usa-la se tivemos uma tela exclusiva para edição no app.

Já a anotação @Insert(onConflict = REPLACE) é utilizada quando você deseja inserir um novo registro no banco de dados, mas caso esse registro já exista, ele será substituído pelos novos valores. Essa substituição é feita com base em uma chave primária ou em uma combinação de colunas únicas.

Portanto, a escolha entre as duas anotações vai depender do seu caso de uso específico. Se você deseja apenas atualizar um registro existente, utilize o @Update. Se você quer inserir um novo registro ou atualizar um existente, utilize o @Insert(onConflict = REPLACE).

Espero ter ajudado e bons estudos!

Ficou bem claro, obrigado!