如果ID为null,则将嵌套对象设置为null

时间:2018-10-31 15:10:51

标签: java mapstruct

如果他的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,则无法将实体插入数据库。

1 个答案:

答案 0 :(得分:0)

不幸的是,这是MapStruct中的已知限制。实现此目的的唯一方法是使用@AfterMapping并将对象重置为null

MapStruct问题中已经有this个请求正在寻找类似内容。