Mapa DTO para Entidades de Back-end

0

Pergunta

Eu estou desenvolvendo um resto de aplicações onde os dados no banco de dados é carregado em Entidades, em seguida, algumas transformações são feitas sobre os dados ao ser preenchido correspondente DTOs, em seguida, voltou para o consumidor.

De acordo com o consumidor e alguns outros parâmetros, um subconjunto diferente dos dados deve ser retornado para o usuário, por exemplo, se o usuário está perguntando sobre suas informações pessoais, nível de detalhes retornando será diferente se um gerente está perguntando sobre os dados de seus empregados, etc ...

Minha pergunta: Existe alguma estrutura para lidar com esse mapeamento personalizado (por exemplo, um arquivo baseado em xml que determina qual o campo em que entidades devem ser mapeados para que DTO em que condição ? em vez de fazer um código personalizado em cada caso? obrigado antecipadamente.

Eu estou usando spring resto + hibernate

dto hibernate java mapping
2021-11-22 07:19:19
1

Melhor resposta

2

Sobre o arquivo XML de mapeamento, eu não sei. Mas o que eu acho muito útil e muito personalizável é MapStruct. É uma ferramenta muito útil na biblioteca e o docs e os exemplos são muito boas.

Um exemplo simples:

@Mapper 
public interface CarMapper {
 
    CarMapper INSTANCE = Mappers.getMapper( CarMapper.class ); 
 
    @Mapping(source = "numberOfSeats", target = "seatCount") // Here is one of the functionalities that you wanted...
    CarDto carToCarDto(Car car); 
}

E há IDE e Lombok apoio também.

2021-11-22 07:37:16

obrigado ... no entanto eu preciso para implementar carToCarDto método -e qualquer outro que se eu tiver vários mapeamentos- ... certo?
osama yaccoub

Não, MapStruct irá implementá-las para você, você só precisa ter getters e setters. Verifique os exemplos e o site que eu vinculada a resposta. Ele faz exatamente o que você precisa
Renis1235

Em outros idiomas

Esta página está em outros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................