Установите для вложенных объектов значение null, если идентификаторы имеют значение null - PullRequest
0 голосов
/ 31 октября 2018

Я хотел бы настроить mapstruct для установки объекта на нуль, если его идентификатор равен нулю. И / или не инициализировать объект в первую очередь, если все его поля равны нулю.

Прямо сейчас я делаю это:

public void setNestedObjectsToNullIfIdsNull(Servicio entity) {
        if(entity == null) return;

        if(entity.getViaje() != null && entity.getViaje().getId() == null) {
            entity.setViaje(null);
        }
        if(entity.getPaciente() != null && entity.getPaciente().getId() == null) {
            entity.setPaciente(null);
        }
        //... this is bad
}

Я делаю это, потому что не могу вставить объект в базу данных, если у него инициализированы реляционные объекты и их идентификаторы равны нулю.

1 Ответ

0 голосов
/ 01 ноября 2018

К сожалению, это известное ограничение в MapStruct. Единственный способ добиться этого - использовать @AfterMapping и сбросить объекты на null.

В проблемах MapStruct уже есть этот запрос, который ищет что-то похожее.

...