我有一个 Spring Boot 应用程序,它利用 Spring Data JPA 来实现基于 REST 的服务。现在我希望使用 Spring Data ElasticSearch 添加全文搜索功能。我正在使用 Spring 中所有内容的最新版本。
我在互为兄弟的不同包中定义了 JPA 存储库和 ElasticSearch 存储库,example.repository.jpa 和 example.repository.es。我已经标记了 ElasticSearch 存储库,@RepositoryRestResource(exported = false)
因为我不希望通过 REST 公开 ES 内容。
ES 存储库被定义为一个扩展的接口,其中ElasticsearchRepository<Domain, Long>
没有任何其他内容。
我遇到的问题是,当我启动应用程序时,Spring Data Rest 似乎很困惑,并且不知何故失去了它应该公开 JPA 存储库的事实。我试过设置
@EnableJpaRepositories("example.repository.jpa")
@EnableElasticsearchRepositories(basePackages = "example/repository/es")
在主应用程序类上以尝试缩小配置,但没有任何效果。
Domain 对象被标记为@Entity
and@Document
并且是一个相当简单的 POJO。
有没有人在同一个应用程序中成功地将 Spring Data JPA 和 Spring Data Elasticsearch 与同一个域对象一起使用?有没有人可以分享或指向我的任何示例代码/配置?这甚至是正确的方法吗?