2
respostas

Record e Model

eu aprendi a construir a API com package Model, e os atributos para a criação de tabelas. Aqui ele usa o Record, é a mesma coisa?

2 respostas

Olá Audrey! Tudo certo?

Na verdade, são conceitos diferentes. Existem as classes que gerarão as tabelas, que são classes tradicionais Java (que são as models em si), e existem os DTOs, que são uma estratégia para fazer com que o usuário não acesse o dado diretamente. Isso acontece por causa do modelo REST, que recomenda que usuários trabalhem apenas com representações de dados, por isso o nome Data Transfer Object, objeto para transferência de dados.

Antes, fazíamos as DTOs como classes tradicionais também, assim como as models. Porém a partir do Java 14, o recurso de Records foi introduzido. As records são, falando de forma bem simples, classes em que escrevemos apenas os atributos, e vários métodos "comuns", como getters e setters, são gerados automaticamente. Caso queira saber mais sobre isso, recomendo a leitura do artigo Java 14 Record Keyword.

Espero ter contribuído! Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Apenas uma correção na resposta da Iasmin, os Records não geram setters, o propósitos deles é facilitar a criação de classes imutáveis e não extensíveis que carregam apenas dados, que é exatamente como os DTOs funcionam. Como as classes de modelo são mutáveis e podem necessitar de herança não podemos utilizar os Records, por isso utilizamos as classes tradicionais.