如果他的id为null,我想将mapstruct配置为将对象设置为null。并且/或者如果他的所有字段均为空,则不要在第一个实例中初始化该对象。
现在我这样做:
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
}
之所以这样做,是因为如果已将关系对象初始化且其id为null,则无法将实体插入数据库。
答案 0 :(得分:0)
不幸的是,这是MapStruct中的已知限制。实现此目的的唯一方法是使用@AfterMapping
并将对象重置为null
。
MapStruct问题中已经有this个请求正在寻找类似内容。