当前位置: 首页 > 知识库问答 >
问题:

使用elasticsearch的spring数据在findTopByOrderBy上失败

法兴德
2023-03-14

我正在使用弹性搜索的Spring数据。我的存储库类有一个方法来获取索引中的最新插入。

Product findTop1ByOrderByIdDesc();

这将失败,但有以下例外。

JAVAlang.NullPointerException:在组织中为空。springframework。数据弹性搜索。果心弹性搜索模板。queryformage(ElasticsearchTemplate.java:307)~[spring-data-elasticsearch-2.0.1.RELEASE.jar:na]位于org。springframework。数据弹性搜索。果心弹性搜索模板。queryForObject(ElasticsearchTemplate.java:251)~[spring-data-elasticsearch-2.0.1.RELEASE.jar:na]位于org。springframework。数据弹性搜索。存储库。查询ElasticsearchPartQuery。在org上执行(ElasticsearchPartQuery.java:78)~[spring-data-elasticsearch-2.0.1.RELEASE.jar:na]。springframework。数据存储库。果心支持RepositoryFactorySupport$QueryExecutorMethodInterceptor。doInvoke(RepositoryFactorySupport.java:482)~[spring-data-commons-1.12.1.RELEASE.jar:na]位于org。springframework。数据存储库。果心支持RepositoryFactorySupport$QueryExecutorMethodInterceptor。在org上调用(RepositoryFactorySupport.java:460)~[spring-data-commons-1.12.1.RELEASE.jar:na]。springframework。aop。框架反射方法调用。在org上继续(ReflectiveMethodInvocation.java:179)~[spring-aop-4.3.0.RC2.jar:4.3.0.RC2]。springframework。数据预测DefaultMethodInvokingMethodInterceptor。org上的invoke(DefaultMethodInvokingMethodInterceptor.java:61)~[spring-data-commons-1.12.1.RELEASE.jar:na]。springframework。aop。框架反射方法调用。在org上继续(ReflectiveMethodInvocation.java:179)~[spring-aop-4.3.0.RC2.jar:4.3.0.RC2]。springframework。aop。拦截器。ExposeInvocationInterceptor。在org上调用(ExposeInvocationInterceptor.java:92)~[spring-aop-4.3.0.RC2.jar:4.3.0.RC2]。springframework。aop。框架反射方法调用。在org上继续(ReflectiveMethodInvocation.java:179)~[spring-aop-4.3.0.RC2.jar:4.3.0.RC2]。springframework。aop。框架jdkDynamicApproxy。在com上调用(JdkDynamicAopProxy.java:213)~[spring-aop-4.3.0.RC2.jar:4.3.0.RC2]。太阳代理$Proxy92。findTop1ByOrderByIdDesc(未知源)~[na:na]

调试了spring数据代码,发现方法ElasticsearchTemplate的'query'为空。QueryFormage

有人能帮我解决这个问题吗?

共有1个答案

夏侯航
2023-03-14

尝试产品findTopByOrderByIdDesc();

 类似资料:
  • 我正在配置elasticsearch spring应用程序,并遵循我创建的RestHighLevelClient文档: 现在我希望我所有的文档都有snake_case的命名策略,在文档上这是我发现的: 在没有进一步配置的情况下,Spring Data Elasticsearch将使用对象的属性名称作为Elasticsearch中的字段名称。这可以通过使用该属性上的@Field注释来更改单个字段。

  • 我在ES上运行查询,但参数的数量正在增加(由于业务原因)。 根据Spring数据弹性搜索中的文档,您可以使用和有序参数,如,等,用于方法签名中给出的参数,但这种方法似乎有点不舒服 是否可以进行类似于的查询,换句话说,使用SpEL访问参数属性? 而不是以一系列参数的方法结束,比如 更像jpa使用的spring数据 或者是否有其他方法可以在不离开spring数据接口的情况下进行查询?

  • 我试图使用Spring数据Elasticsearch连接到Elasticsearch 5。 根据链接-https://github.com/spring-projects/spring-data-elasticsearch,spring数据弹性搜索-3.0.0。M4与Elasticsearch 5.4.0兼容 但我在尝试连接Elasticsearch时出现以下错误 请告诉我,如果你们中的任何一个人

  • 我对Cassandra使用Spring Boot和Spring数据。在应用程序启动时,spring建立到数据库的连接,以设置模式并初始化spring数据存储库。如果数据库不可用,应用程序将无法启动。 我希望,应用程序只是记录一个错误并启动。当然,我不能再使用存储库了,但是其他独立于数据库的服务(rest控制器等)应该可以工作。在执行器健康检查中看到卡桑德拉倒下也很好。 DatabaseNotCon

  • 我有一个spring boot 1.5.9应用程序,它使用spring数据elasticsearch(2.1.3)连接到elasticsearch 2.4.0实例。现在,我需要将spring boot升级到版本2,使其能够与新的依赖项一起工作。 如果我使用最新的spring启动版本(2.1.0),它附带了spring数据elasticsearch 3.1.2,它使用elasticsearch 6.

  • 我想使用以下实体的Spring Data将未指定的json有效载荷数据存储在Elasticsearch索引中 有效负载各不相同,需要以通用的方式存储,也可以轻松地再次加载,这就是为什么我想在这里使用JsonNode。 将写入具有“id”的文档,但字段“payload”为空。 当我在Kibana中查找写入索引的文档时,它如下所示: 在索引映射中,“有效负载”也没有创建,它看起来像这样: 有没有办法存