java - springboot webflux couchbase API未显示结果
问题描述
我正在开发一个 springboot 反应式 API 来从 couchbase 数据库中获取更新的结果。我有一个基于 N1QL 的存储库,如下所示。
@Repository
@N1qlPrimaryIndexed
public interface LocationDataRepository extends ReactiveCrudRepository<LocationData,String> {
@Query("#{#n1ql.selectEntity} where userID=$1 and dataType = $2")
Flux<LocationData> findByUserIDAndDataType(String userID,String dataType);
}
下面给出了我的宁静 webcontroller 方法。
@Autowired
LocationDataRepository locationDataRepository;
@GetMapping(value="/LocationUpdates", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
public Flux<LocationData> findLatestLocations(@RequestParam("userID") String userID){
String dataType = "location";
return Flux.interval(Duration.ofSeconds(1)).flatMap(X -> locationDataRepository.findByUserIDAndDataType(userID,dataType));
}
我的问题是,当我从浏览器或邮递员访问此端点时,它不会显示任何结果,但会保持刷新。我如何能够使用 LocationRepository 保存数据。我无法弄清楚这里有什么问题。谁可以帮我这个事?谢谢你。
解决方案
确保您有 spring-data-couchbase 4.0.1 或更高版本。@Query 是最近才实施的。否则它将生成查询本身,这可能是也可能不是您想要的。如果您在 Couchbase Web 控制台中使用适当的 userID 和 dataType 执行该查询,您会获取数据吗?如果将产品更改为 MediaType.APPLICATION_JSON_VALUE,它会显示在浏览器中吗?
推荐阅读
- python - 如何从转换为exe的python脚本运行exe文件
- twitter-bootstrap - Twitter Bootstrap 5 导航子菜单/嵌套菜单
- beagleboneblack - 没有 gpsd chronyd 数据交换
- flutter - 如何在 Flutter 中更改边框的宽度和颜色
- amazon-web-services - 这种 AWS S3 存储桶策略有意义吗?
- ios - 如何从健康应用程序的 HKSample 中获取严重性值
- vba - 声明为变体的变量生成运行时错误 438 - 对象不支持 Outlook 的此属性或方法
- android - 在android中监控默认浏览器
- ios - 全局变量和静态变量对内存有害吗?
- xamarin.android - Xamarin.andriod 加载失败帮助我