1 回答
TA贡献1906条经验 获得超10个赞
当前的解决方法是将实体 bean 映射到 Java 流或反应流中的 DTO bean,并手动或通过 Mapstruct 进行属性映射。
更新:这是评论中问题的答案,并举例说明了如何使用 Mapstruct 进行解决方法:
将 Mapstruct 依赖项添加到build.gradle中:
implementation "org.mapstruct:mapstruct:$mapstructVersion"
annotationProcessor "org.mapstruct:mapstruct-processor:$mapstructVersion"
testAnnotationProcessor "org.mapstruct:mapstruct-processor:$mapstructVersion"
定义映射器:
import org.mapstruct.Mapper;
@Mapper(
componentModel = "jsr330"
)
public interface ParseErrorMapper {
ParseErrorDto entityToDto(@NotNull ParseError parseError);
EntityReference recipeToDto(@NotNull Recipe recipe);
}
这是控制器中该映射器的用法:
@Controller("/parse-error")
public class ParseErrorController {
private final ParseErrorRepository repository;
private final ParseErrorMapper mapper;
public ParseErrorController(ParseErrorRepository repository, ParseErrorMapper mapper) {
this.repository = repository;
this.mapper = mapper;
}
@Get("all")
@Transactional
public Page<ParseErrorDto> getAll(final Pageable pageable) {
return repository.findAll(pageable).map(mapper::entityToDto);
}
}
添加回答
举报