gpt4 book ai didi

elasticsearch - Spring Boot + Elasticsearch

转载 作者:行者123 更新时间:2023-11-29 02:53:51 24 4
gpt4 key购买 nike

我正在尝试使用 Spring Boot 和 Elastic Search 设置应用程序。此应用程序已使用 Spring Data JPA 存储库来保存我的实体。当我尝试在启用 ElasticSearch 配置的情况下运行应用程序时遇到的问题是,在扫描存储库时出现异常。

我收到以下异常:

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);
}

似乎是由于返回 int 的计数查询的签名导致异常发生。即使此存储库与 JPA 配合良好,它也会抛出启用 Elasticsearch 的异常。

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

我的 Java 配置类:

@Configuration
@EnableElasticsearchRepositories
public class ElasticSearchConfig {
}

谢谢!

最佳答案

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

例如:

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

}

关于elasticsearch - Spring Boot + Elasticsearch ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25771310/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com