I'm having this exception calling @query in mongoDB reactive in webflux springboot 3.3.4 when a table result of first query is empty calling other repository to search in other table that have the record searched.
return productRepository
.findBySearchKey(code, channel, touchpoint)
.doOnNext(AEMProductData -> log.debug("{} product on Products in MongoDB: {}", logHash, AEMProductData.toString()))
.map(aemProductEntity -> {
DozerBeanMapper mapper = new DozerBeanMapper();
BaseProductsResponse response = mapper.map(aemProductEntity, AEMProductResponse.class);
return response;
})
.switchIfEmpty(aemProductRepository
.findBySearchKey(code, channel, touchpoint)
.doOnNext(aemProductEntity -> log.debug("{} product on AEMProducts on MongoDB: {}", logHash, aemProductEntity.toString()))
.map(aemProductEntity -> {
DozerBeanMapper mapper = new DozerBeanMapper();
BaseProductsResponse response = mapper.map(aemProductEntity, AEMProductResponse.class);
return response;
})
);
In the switchEmpty generate exception in jdk.internal.reflect in method public Object invoke(Object obj, Object[] args) throws InvocationTargetException { we are using JDK21.0.6:
.switchIfEmpty(aemProductRepository
.findBySearchKey(code, channel, touchpoint)
.doOnNext(aemProductEntity -> log.debug("{} product on AEMProducts on MongoDB: {}", logHash, aemProductEntity.toString()))
.map(aemProductEntity -> {
DozerBeanMapper mapper = new DozerBeanMapper();
BaseProductsResponse response = mapper.map(aemProductEntity, AEMProductResponse.class);
Somebody can tell us what happening? We are using lombok hibernate and Mongo Reactive Repository and Springboot 3.3.4 with Webflux.