【问题标题】:springboot webflux couchbase API not showing resultsspringboot webflux couchbase API未显示结果
【发布时间】:2020-10-21 16:31:11
【问题描述】:

我正在开发一个 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);
}

下面是我的restful 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 保存数据。我无法弄清楚这里有什么问题。谁可以帮我这个事?谢谢。

【问题讨论】:

    标签: java couchbase spring-webflux spring-data-couchbase


    【解决方案1】:

    确保您拥有 spring-data-couchbase 4.0.1 或更高版本。 @Query 是最近才实施的。否则它将生成查询本身,这可能是也可能不是您想要的。 如果您在 Couchbase Web 控制台中使用适当的 userID 和 dataType 执行该查询,您会获取数据吗? 如果将产品更改为 MediaType.APPLICATION_JSON_VALUE,它会显示在浏览器中吗?

    【讨论】:

    • 以上查询在 Web 控制台中给出结果。但是,我有一个较低版本的 spring-data-couchbase。似乎这就是问题的原因。谢谢!!
    猜你喜欢
    • 2017-05-28
    • 2021-10-08
    • 2012-03-07
    • 1970-01-01
    • 2016-11-04
    • 2016-04-08
    • 2021-08-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多