Как с помощью 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

Можно не мапить это поле, а по айди Клиента из ДТО комнаты доставать его из базы, и сетить найденную сущность предварительно замапленной сущности Комнаты (без Клиента).

Ну или сетить туда клиента, у которого нет ничего кроме айди, где-то мапстракт позволяет производить настройку маппинга.

→ Ссылка