Установите для вложенных объектов значение NULL, если идентификаторы имеют значение NULL
Я хотел бы настроить 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 ответ
Решение
К сожалению, это известное ограничение в MapStruct. Единственный способ добиться этого - использовать @AfterMapping
и сбросить объекты в null
,
В проблемах MapStruct уже есть этот запрос, который ищет нечто подобное.