TG Telegram Group & Channel
Библиотека джависта | Java, Spring, Maven, Hibernate | United States America (US)
Create: Update:

🔍 Как маппить объекты

Часто приходится конвертировать Entity -> DTO или DTO -> Model. Вот основные способы, как это сделать.

1️⃣ Ручной маппинг

Простой, но не очень масштабируемый.

public class UserMapper {
public static UserDto toDto(User user) {
return new UserDto(user.getId(), user.getName());
}

public static User toEntity(UserDto dto) {
return new User(dto.getId(), dto.getName());
}
}


2️⃣ MapStruct

Генерирует код на этапе компиляции → быстрее, чем рефлексия.
@Mapper
public interface UserMapper {
UserMapper INSTANCE = Mappers.getMapper(UserMapper.class);

UserDto toDto(User user);
User toEntity(UserDto dto);
}


3️⃣ ModelMapper

Просто, но медленнее из-за рефлексии.
ModelMapper modelMapper = new ModelMapper();
UserDto dto = modelMapper.map(user, UserDto.class);


4️⃣ Record + Java 17

Используем record вместо классов DTO для упрощения кода.
record UserDto(Long id, String name) {}

UserDto dto = new UserDto(user.getId(), user.getName());


5️⃣ Stream API для маппинга коллекций

Если нужно преобразовать список объектов.
List<UserDto> dtos = users.stream()
.map(UserMapper::toDto)
.collect(Collectors.toList());


💬 Какой способ используете в проектах?

🐸 Библиотека джависта #буст

🔍 Как маппить объекты

Часто приходится конвертировать Entity -> DTO или DTO -> Model. Вот основные способы, как это сделать.

1️⃣ Ручной маппинг

Простой, но не очень масштабируемый.
public class UserMapper {
public static UserDto toDto(User user) {
return new UserDto(user.getId(), user.getName());
}

public static User toEntity(UserDto dto) {
return new User(dto.getId(), dto.getName());
}
}


2️⃣ MapStruct

Генерирует код на этапе компиляции → быстрее, чем рефлексия.
@Mapper
public interface UserMapper {
UserMapper INSTANCE = Mappers.getMapper(UserMapper.class);

UserDto toDto(User user);
User toEntity(UserDto dto);
}


3️⃣ ModelMapper

Просто, но медленнее из-за рефлексии.
ModelMapper modelMapper = new ModelMapper();
UserDto dto = modelMapper.map(user, UserDto.class);


4️⃣ Record + Java 17

Используем record вместо классов DTO для упрощения кода.
record UserDto(Long id, String name) {}

UserDto dto = new UserDto(user.getId(), user.getName());


5️⃣ Stream API для маппинга коллекций

Если нужно преобразовать список объектов.
List<UserDto> dtos = users.stream()
.map(UserMapper::toDto)
.collect(Collectors.toList());


💬 Какой способ используете в проектах?

🐸 Библиотека джависта #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥94😁4❤‍🔥1


>>Click here to continue<<

Библиотека джависта | Java, Spring, Maven, Hibernate






Share with your best friend
VIEW MORE

United States America Popular Telegram Group (US)