如何在将JPA实体映射到DTO的mapstruct
映射器中未加载惰性字段时跳过调用getter方法?
我正在使用JPA
EntityGraph为method1
加载所需的子实体,但method2
我使用不同的EntityGraph,我不想为每种情况创建不同的映射器。
有没有办法为两个方法创建一个映射器并忽略延迟加载的属性?
您可以有两个方法进行相同的映射,另一个方法忽略未初始化的字段
abstract Personne toDtoV1(PersonneModel model);
@Mapping(target = "nom", ignore = true)
abstract Personne toDtoV2(PersonneModel model);
或者如果你只需要一个方法,你可以创建一个映射,其中所有字段都可以在ignore中加载延迟,并且在映射后的方法中检查是否加载了关系并自己进行映射
@Mapping(target = "nom", ignore = true)
abstract Personne toDtoV2(PersonneModel model);
@AfterMapping
void afterpersonneModel(PersonneModel dto, @MappingTarget Personne mode){
//check if relation is loaded
///and make the mapping
}