【发布时间】:2014-11-04 10:48:09
【问题描述】:
我正在尝试使用 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 中运行良好,它也会引发启用弹性搜索的异常。
我想知道存储库中的返回类型是否有任何限制,或者我的配置中是否缺少某些内容。
我的 Java 配置类:
@Configuration
@EnableElasticsearchRepositories
public class ElasticSearchConfig {
}
谢谢!
【问题讨论】:
标签: elasticsearch spring-data spring-boot spring-data-jpa