Buenas a todos,
estoy desarrollando un pequeño proyecto con Spring Boot para trabajar con una API Rest en el Backend pero me han surgido una serie de cuestiones de diseño a la hora de recuperar los datos de la BD (MySQL básico) mediante los repositorios JPA que no he logrado aclarar.
Mi duda principal viene motivada por la ingente cantidad de DTOs que he tenido que crear para mapear los datos de las diferentes consultas nativas, es decir, la estructura de las filas/columnas resultantes de las consultas no se ajustan a las entidades definidas por lo que me veo obligado a crear un DTO con los atributos necesarios para 'acomodar' el resultado de la consulta. De esta forma, para cada consulta que devuelva una serie de datos combinados de diferentes entidades y obtenidos de diferentes cálculos (agrupaciones, medias, etc) o simplemente un atributo inexistente en las entidades, tengo que definir un nuevo DTO.
Entiendo que hay algo que no debo estar haciendo correctamente y que deben existir alternativas para cubrir este tipo de necesidades sin que el número de objetos DTO se disparen proporcionalmente al número de consultas complejas ¿no? ¿Cuál es la mejor forma de abordar este tipo de problema?
He leído sobre la utilización de proyecciones pero sólo se aplican a una entidad -creo- para evitar recuperar datos innecesarios.