首先,我是 Spring Webflux 的新手,并尝试在设置反应式 Spring Boot 项目时进行 POC。我有一个用例,我需要将检索到的实体类(PartyDTO)转换为 Mono 对象(Person :是没有构造函数的第三方业务对象,我无法修改它)。我用谷歌搜索但无法找到与我的用例匹配的答案。
第三方对象:
public class Person {
// no constructors
private Integer custId;
private String fullname;
private LocalDate date;
//
getters and setters
}
Run Code Online (Sandbox Code Playgroud)
我的课程如下:
@Table("party")
public class PartyDTO {
@Id
private Integer party_id;
private String name;
private LocalDate start_date;
}
Run Code Online (Sandbox Code Playgroud)
调用我的存储库的服务类。
@Service
public class ServiceImpl{
@Override
public Mono<Person> getParty(String partyId) {
return
partyRepository.findById(Integer.parseInt(partyId)).flatMap(//mapper to convert PartyDTO to Person goes here);
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试将平面地图与我的自定义映射器一起使用,如上所示,但它不起作用。有人可以建议我如何以非阻塞方式实现这一点(如果第三方 bean 映射器支持非阻塞方法,它也很好)