如何在 Spring Boot 中将 Set<BookDto> 转换为 Set<Book>

How to convert Set<BookDto> to Set<Book> in Spring Boot

我怎样才能做到这一点?或者我应该直接使用 book 模型而不是 bookdto 来处理这些事情吗?最佳做法是什么?

Spring 开机有bean com.fasterxml.jackson.databind.ObjectMapper

注入即可。更好地通过您的组件构造函数。或者只是做一个实例。

之后有两种方法。您可以映射所有流:

   Set<Book> books = bookDtoSet.stream().map(i -> objectMapper.convertValue(i, Book.class)).collect(Collectors.toSet());
    

或使用这种方法:

   Set<Book> books = objectMapper.convertValue(bookDtoSet, new TypeReference<Set<Book>>() { });

只要字段的名称和类型相似,这两种方式都有效。