繁体   English   中英

Spring webflux 将实体 class 转换为 Mono DTO ZA8CFDE6331BD59EB2AC96F8911C4B666

[英]Spring webflux convert Entity class to Mono DTO object

First of all,i am new to spring webflux and trying to do a POC on setting up a reactive spring boot project.i have a use case, where i need to convert the retrieved entity class(PartyDTO) to Mono object(Person: which是第三方企业 object 没有构造函数,我无法修改它)。我用谷歌搜索但无法找到与我的用例匹配的答案。

第三方 object:

  public class Person {
        // no constructors 
        private Integer custId;
        private String fullname;
        private LocalDate date;
        //
        getters and setters
    }

我的课程如下:

@Table("party")
public class PartyDTO {

    @Id
    private Integer party_id;
    private String name;
    private LocalDate start_date;
}

调用我的存储库的服务 class。

 @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);
        }
}

如上所示,我尝试将平面图与我的自定义映射器一起使用,但它不起作用。有人可以建议我如何以非阻塞方式实现这一点(如果它支持非阻塞方法,第 3 方 bean 映射器也可以)

假设partyRepository.findById()返回一个 Mono,你可以简单地做

    @Service
         public class ServiceImpl{
    
         @Override
            public Mono<Person> getParty(String partyId) {
                 
       return partyRepository.findById(Integer.parseInt(partyId)).map(partyDto->{
         Person person = new Person();
         person.setName(partyDto.getName());
         return Mono.just(person);
});
            }
    }

可以参考https://projectreactor.io/docs/core/release/api/reactor/core/publisher/Mono.html#just-T-

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM