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

Spring靴弹性搜索

益兴生
2023-03-14

我试图用Spring Boot和弹性搜索设置一个应用程序。这个应用程序已经使用Spring Data JPA存储库来持久化我的实体。当我试图在启用弹性搜索配置的情况下运行应用程序时,我遇到的问题是,当存储库被扫描时,我得到了一个异常。

我得到了以下例外:

Caused by: java.lang.IllegalArgumentException: Unable to obtain mapping metadata for int!

我的存储库的定义如下:

@Repository
public interface AdminUserRepository extends PagingAndSortingRepository<AdminUser, Long> {

    /**
     * Returns an AdminUser that match the email specified by parameter.
     * @param email AdminUser email.
     * @return An AdminUser instance.
     */
    AdminUser findByEmail(final String email);

    /**
     * Returns an AdminUser that match the email and business name specified by parameter.
     * @param email AdminUser email.
     * @param businessName Business Name.
     * @return number of matching instances.
     */
    int countByEmailAndBusinessName(final String email, final String businessName);
}

异常似乎是由于count查询的签名导致的,该签名返回一个int。尽管这个存储库可以很好地处理JPA,但它会抛出一个异常,从而启用弹性搜索。

我想知道存储库中的返回类型是否有任何限制,或者我的配置中是否缺少某些内容。

我的Java配置类:

@Configuration
@EnableElasticsearchRepositories
public class ElasticSearchConfig {
}

谢谢

共有2个答案

琴镜
2023-03-14

对于计数Spring数据使用int。尝试更改应该有效的方法类型。

这里是参考文档:http://docs.spring.io/autorepo/docs/spring-data-elasticsearch/2.0.2.RELEASE/reference/html/#repositories.core-concepts

段干宾白
2023-03-14

看起来Spring Data Elasticsearch正在寻找一个用于Spring Data JPA的存储库。在同一个应用程序中使用多个Spring数据模块时,应该将存储库放在单独的包中,然后在@Enable 注释。

例如:

@Configuration
@EnableElasticsearchRepositories("com.foo.elasticsearch")
@EnableJpaRepositories("com.foo.jpa")
public class MyConfiguration {

}

 类似资料:
  • 这应该连接到我的elasticsearch 7.6.2版本 当我运行我的empy应用程序时,我得到这个错误。

  • 我刚刚用ElasticSearch编写了一个小的Spring Boot应用程序。到目前为止效果很好。 我的main()类:代码正常工作,没有错误消息。但正如我所说,ElasticSearch的REST API是不可用的。netstat中未列出开放端口:

  • 断路器将处于闭合或半断开状态无限时间,直到达到最小的呼叫次数,对吗?有什么办法我可以设置什么时候没有调用在数量的时间,它将转为关闭状态?另外,在半开状态下,是否有可能使最小呼叫数大于允许的呼叫数?谢谢。

  • 升级到Spring boot 2.3和Spring data elasticsearch 4.0.9后的问题。我有这样的文档: 这在spring data 3.0中与Jackson配合得很好,但升级到4.0后,Jackson不再可用,现在我收到了一个来自spring的实例化异常,无法实例化URL对象。 例外情况: 任何关于解决方案的想法都将受到赞赏。

  • 我在AWS Elastic Beanstalk上部署了一个Spring Boot应用程序。我正面临502严重网关错误。我从日志中找不到任何有用的东西 /var/log/nginx/error。日志 2019/02/10 02:12:54[错误]3257#0:*1连接()失败(111:连接被拒绝),连接到上游时,客户端:。。。。,服务器:,请求:“GET/HTTP/1.1”,上游:http://12

  • 当我执行ps-aef grep elasticsearch HeapDumpOnOutOfMemoryError时看到了这一点 501 373 47 1 0 2:29pm ttys004 0:04.14/usr/bin/Java-xms4g-xmx4g-xss256k-djava.awt.headless=true-xx:+useparnewgc-xx:+useparnewgc-xx:+usepa