Problemas con conceptos Entity, Repository, etc?

Hola.

Estoy en un proyecto web en el que manejo conceptos nuevos para mi, los cuales no logro aterrizar.
En un proyecto ya iniciado por alguien, tengo la existencia de Entity creadas por Hibernate (Entiendo que las entidades es el modelado de una tabla en base de datos a una clase java...). Pero en el mismo código cuento con algunos DTOs por lo que no me explico el porque de los dos si yo entendía que sirven para lo mismo.

Otra duda es con respecto a repository ya he buscado pero no veo la diferencia con DAO.

Entonces.. mis dudas son.
Que diferencia existen entre una Entity y un DTO y cuando aplicar uno y otro o en su defecto los dos?
Que es mejor repository o DAOs?

Saludos

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de paranoid_android

Recomendación

Los conceptos en particular que preguntas vienen en la documentación de Hibernate.
No asumas que el(los) programador(es) usaba(n) un concepto estandarizado. A veces cada quien le da una interpretación diferente y más si no se usó una autoridad o guia que les dijera como construir.
Te recomiendo hasta donde sea posible reconstruyas la historia ¿Quien hizo que?, ¿Cuantos le metieron mano?, ¿Cuánto tiempo o mantenimientos lleva? Al menos para tener una idea.
Si te es posible sigue el patrón aunque el concepto cambie en la solución de esa manera evitas que se degrade más el código fuente. Posiblemente puedas documentar lo que para ese sistema particular está haciendo un DTO o un entity.

Re: Recomendación

 

Sólo por curiosidad. — ¿En qué parte de la documentación de Hibernate aparecen esos conceptos en particular?

Imagen de paranoid_android

Documentación de HibernateEn

Documentación de Hibernate

En esta documentación están los conceptos de JTA, entity
Hibernate
Hibernate Developer Guide

Estos son patrones de Diseño Java

DTO

DAO

En general en San Google puedes poner "patron de diseño DAO" o "wiki DAO".