当前位置: 首页 > 知识库问答 >
问题:

MapStruct-空集

薛经艺
2023-03-14

我在我的项目中使用Mapstruct。在其中一个实体中,我有set[oneToMany]结构。当我在存储库中使用findAll()检索所有数据时,如果没有绑定,则返回一个空的HashSet。

public class Employee{

....
private Set workplaces;
...
}
@Mapper(componentModel = "spring")
public interface EmployeeMapper{
EmployeeDTO toDTOFromEntity(Employee employee);
}

共有1个答案

皮嘉德
2023-03-14

我一定错过了什么,但mapstruct生成了如下代码:

if ( set != null ) {
    employeeDTO.setWorkplaces( new HashSet( set ) );
} else {
    employeeDTO.setWorkplaces( null );
}

所以一个空集的新Hashset不会导致nullpointer?

 类似资料:
  • Mapstruct在Spring-Boot rest api中使用一对多和多对一关系映射我的实体时遇到了一个问题。 我有下面的课 因此,当我在评论中添加私有UserDTO用户时;进入PolicyDTO和公共列表PolicyList;进入UserDTO 结果策略列出了所有字段中的值都可以,当然,除了两个注释字段。如果我用双向关系将这两个字段取消注释到DTO中,结果不仅在关系字段中是null,而且在所

  • 我们为源和目标定义了一个mapstruct映射器,该映射器也使用Lombok。 null 对于选项3和4,我找不到mapstruct是否支持它的答案。

  • 我试图使用MapStruct在dto和实体对象之间映射convert,但是生成的映射器实现只返回空的映射对象。 BeermapperImpl 任何人都可以提供我的代码可能出错的地方?谢谢!

  • 我有一个用并尝试使用注释。该方法还用注释。将忽略注释。是否可以在Mapstruct方法上使用?

  • 使用@SpringBootTest,据我所知,Spring实际上是在启动应用程序,并且应该创建映射器类,所以我不明白,为什么映射器总是空?!当我删除@SpringBootTest中的DummyMapper.class时,会出现一个错误,上面写着“Failed to load application Context”。这向我表明,映射器是被识别的。 我觉得奇怪的另一件事是,我必须在映射器中使用“un

  • 我想将字段从映射到类,如果源值为,我想将其转换为基于数据类型的默认值(“”表示字符串,0表示数值类型等)。对于设置值,我不使用常规的setter,而是使用builder(带有protobuf,因此方法的名称为和)。 我的映射器如下所示: 使用此代码生成的映射器实现调用,而不是执行null检查并在source返回时设置默认值。有趣的是,当我向方法添加以下注释时,在实现中出现了空检查。 这是构建器中的