Как с помощью Mapstruct передавать не полностью сущность а лишь его ID
У нас есть два Entity
Client
public class Client {
private long id;
private String name;
Room
public class Room {
private long id;
private String roomName;
@OneToOne
@JoinColumn(name = "client_id")
private Client creator;
и есть соответсвенно DTO для обоих сущностей. Как сделать, что бы в RoomDTO мы передавали не полностью клиента, а только его ID
RoomDTO
public class RoomDto {
private Long id;
private String roomName;
private ClientDto creator;
RoomMapper
@Mapper(componentModel = "spring")
public interface MessageMapper {
Message toEntity(MessageDto messageDto);
Message toEntity(CreateMessageRequestDto createMessageRequestDto);
MessageDto toDTO(Message message);
То есть я хочу что бы в RoomDTO было не
ClientDTO creator
а
Long creatorId
Ответы (1 шт):
Автор решения: StealingTime
→ Ссылка
Можно не мапить это поле, а по айди Клиента из ДТО комнаты доставать его из базы, и сетить найденную сущность предварительно замапленной сущности Комнаты (без Клиента).
Ну или сетить туда клиента, у которого нет ничего кроме айди, где-то мапстракт позволяет производить настройку маппинга.