我试图使用spring WebFlux/Reactor对数据库进行嵌套调用,以返回一个嵌套对象(一个用户和他的角色)。
场景如下:
上面的场景必须在没有阻塞的情况下完成(我知道映射是一个很小的阻塞:))。
public Mono<User> retrieveByUsername(String username) {
return databaseClient.execute(usersQueries.getProperty("users.select.by.username"))
.bind("username", username.toLowerCase())
.map((row, meta) -> UserRowMapper.mapRow(row, meta))
// here goes nested database query to retrieve roles and set them to retrieved user
// and return Mono<User>
.one();
}
提前感谢您的帮助。
以下是我如何看待你的问题的解决方案:
public Mono<User> retrieveByUsername(String username) {
Mono<User> userMono = databaseClient
.execute(usersQueries.getProperty("users.select.by.username"))
.<User>map((row, meta) -> UserRowMapper.mapRow(row, meta))
.one()
.cache();
Flux<Role> roles = Mono
.from(userMono)
.flatMapMany(user -> databaseClient
.execute(usersQueries.getProperty("roles.select.by.user.id"))
.bind("userId", user.getId())
.<Role>map((row, meta) -> RoleRowMapper.mapRow(row, meta))
.all()
);
return Mono
.from(userMono)
.flatMap(user -> roles
.collectList()
.map(r -> {
user.setRoles(r);
return user;
})
);
}
我试图解析一个OpenAPI JSON文件,并访问值来构建一个rest模型类。我尝试使用对象映射器解析JSON文件,并将其发送到一个接收
问题内容: 我正在尝试使用zippopotam.us获取特定城市的邮政编码。我有下面的代码可以正常工作,但是当我尝试访问返回的密钥时 完整的JSON输出: 谢谢你的帮助。 问题答案: 我没有意识到第一个嵌套元素实际上是一个数组。正确访问邮政编码密钥的方法如下:
问题内容: 我正在尝试使用angular.js,hammer.js和topcoat制作和移动webapp。 我在显示像这样的Json文件中的数据时遇到了一些麻烦: 我的js文件是这样的: 我的HTML文件是这样的: 我想显示所有专辑,并且如果我的用户选择特定的艺术家,我想过滤那些专辑。 这里的问题是如何在此嵌套json上进行选择。顺便说一句,artist.name显示正确。 第二个问题是,如何过滤
问题内容: 为什么以下SQL语句不起作用? 它产生此错误: 查询输入必须至少包含一个表或查询。 单个语句有效。 问题答案: Access SQL语句不会让您对以下其中一项使用子查询 按照Piotr的建议,切换到语句即可。 或者,您可以在语句中使用Access Domain Aggregate函数而不是子查询:
我有以下HTML代码的网页: 我试过这个。WebDriverWait(驱动程序,10).Unilt(ec.frame_to_available_and_switch_to_it((by.css_selector,“iframe.iframetgr”)))WebDriverWait(驱动程序,10).Unilt(ec.frame_to_available_and_switch_to_it((by.n
问题内容: 假设我有json数据,例如 现在我正在从该json数据访问字段,例如: 如何以最有效的方式从给定的json数据访问第三个字段()? 不起作用 一种可能是我使用for循环构造字符串,然后进行eval评估,但是有没有有效的方法呢? 问题答案: 老实说,我无法理解您的问题。JSON已经结构化了,为什么需要更改结构? 在您的情况下,我将按以下方式访问它: 如果碰巧希望 遍历 数据,则需要: 更