首先,我是SpringWebFlux的新手,正在尝试建立一个反应式spring启动项目的POC。我有一个用例,需要将检索到的实体类(PartyDTO)转换为Mono对象(Person:这是一个没有构造函数的第三方业务对象,我无法修改它)。我在谷歌上搜索,但找不到与我的用例相匹配的答案。
第三方对象:
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;
}
调用我的存储库的服务类。
@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);
}
}
如上图所示,我尝试将平面图与我的自定义映射器一起使用,但它不起作用。有人能告诉我如何以非阻塞的方式实现这一点吗(如果第三方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-
我需要将实体对象转换为json。我把 到 servlet 配置文件,因此 Spring 可以自动将对象转换为 json 格式。但Spring没有这样做。我还在项目中添加了杰克逊罐子。 控制器方法 小组学生 } 在浏览器中,我发现我有 406 错误和错误窗口错误[对象对象]。 如果有人知道问题出在哪里,我会很高兴得到帮助。 谢谢。
我是Firebase数据库的新手,我正在遵循谷歌的文档从我的数据库中检索数据。 我有这样的结构: 我的应用程序崩溃。 我不明白与谷歌文档的区别。有人能帮帮我吗?我太纠结了! 错误是:
我理解超类/子类之间的关系以及强制转换是如何工作的。但是,我的问题是,如果知道中间有一个类,你能把一个超类转换成一个特定的子类吗?例如,如果我有一个动物类对象包含一个BigDog对象,我可以将该对象强制转换为Dog吗?如果BigDog中有Dog中不存在的方法怎么办? 简而言之,你当然可以说超类对象是子类对象,但为什么你可以反转呢? 转念一想, Java在调用方法时检查的是:引用(DOG)是否有引用
例如:Date值为:“dateCollected”:fri Jul 07 00:00:00 IST 1989, 但它只服用星期五而不是整个日期。
问题内容: 我有一些这样的代码。 超级班 子类 所以问题是我可以将超类的对象转换为子类吗?这个问题对我来说是正确的吗? 但它给Class Cast异常。 问题答案: 您可以将子类转换为超级类,反之亦然。如果“车辆”是“超级类”,而“汽车”是子类,则所有“汽车”(子代)都是“汽车”(“超级”),但并非所有“车辆”都是“汽车”。
问题内容: 好吧,如果我有这段代码 一切正常,但是 运行后给出以下错误(Eclipse没有给出任何错误) 虽然,当我这样做 要么 再没有错了。 为什么必须将其首先转换? 问题答案: 声明对象时,可以通过检查对象是否实际上已强制转换为实例来判断。由于取消装箱约定,可以再次将其强制转换为。之后,该值可以转换为。 但是,没有从Double实例转换为的取消装箱约定,因此,如果您尝试这样做,则运行时将发出。