Сопоставление объектов с помощью ModelMapper в прошлый раз
На этот раз будет использоваться MapStruct
Во-первых, давайте выясним разницу между двумя
ModelMapper против MapStruct
Когда обе функции используются для преобразования типа
Используется для преобразования одного объекта в другой тип объекта. Оба два
Объясните различия на основе MapStructure…
- MapStruct создает реализации, считывая аннотацию
при компиляции (ModelMapper имеет отражение при отображении) - MapStruct может проверять ошибки при компиляции
- Скорость обработки MapStruct значительно выше, чем у ModelMapper.
Из-за этих преимуществ я буду использовать MapStruct.
Давайте рассмотрим основные функции и различные стратегии картирования.
Параметры зависимости
Если вы используете Lombok, добавьте «lombok-mapstruct-bunding».
Теперь создайте картограф
UserMapper.java @Mapper public interface UserMapper{ UserMapper INSTANCE = Mappers.getMapper(UserMapper.class); UserEntity userDTOToEntity(UserDTO userDTO); UserDTO userEntityToDTO(UserEntity userEntity); }
Объявите его как интерфейс.
Имплантат будет автоматически создан в цели.
Если имена переменных DTO и Entity совпадают,
это сработает.
нужно сделать Builder в UserEntity
DTO и Entity имеют одинаковые переменные
Теперь используйте ту, которую вы сделали раньше
Наконец, давайте рассмотрим некоторые стратегии сопоставления
Они доступны в UserMapper.
Сопоставление различных свойств
Сопоставление псевдонима в DTO с псевдонимом в Entity
Игнорировать свойства
При замене DTO на сущность, если значение сущности отсутствует в DTO
DTO String nick; String name; Entity String nickname; String name; String Age;
В этом случае нулевое значение добавляется к Entity.Age (DTO → Entity)
Используйте 1_
мы узнали, как использовать MapStructure вместо ModelMapper
Используйте его по ситуации. Спасибо