Qual é a diferença entre um DTO e uma entidade comum?

Eu pesquisei em vários lugares e o pessoal costuma dizer que ele transporta dados entre componentes de um sistema; mas quem faz isso não são os services e os beans?
Quando eu pego um projeto que tem DTO e entidades comuns para comparar, não vejo quase diferença nenhuma.

Vou descrever da forma que eu conheço, espero que te ajude a compreender!
DTO’s são utilizados para movimentar dados entre o back e o front da aplicação, um DTO pode ser um espelho de uma entidade, mas não só isso, uma DTO pode ter muitos outros objetos além do que a entidade possuí, podemos aplicar regras de validação de dados diretamente nelas, entre outras coisas, já na entidade se aplica somente os atributos que pertencem a ela e suas regras de negócio.
Em pequenas aplicações e exemplos existentes na internet em sua maioria serão apresentadas como sendo apenas um espelho de entidades, mas o uso de uma DTO vai muito além disso.

Eu tenho esse projeto no qual eu utilizei o conceito de DTO, no meu cenário utilizei para tratar a validação das informações transacionadas.
Mas como te disse antes, é um exemplo simples igual os demais que existem na internet.

Resposta no GUJ:


Sites: