0

目前,我們使用彈簧數據JPA和MySql數據庫,其中DataTabaleRepository與JPA協同工作。現在我們正在將數據移動到Spring數據elasticserch,但DataTabaleRepository不適用於此。有沒有其他的選擇,或如何實現一個自定義存儲庫?Spring Data中的DataTableRepository Elasticsearch

+0

哪部分完全不工作? – Veeram

+0

我想在https://github.com/darrachequesne/spring-data-jpa-datatables中以相同的方式自定義響應... –

回答

1

spring-data-jpa-datatables沒有實現對ElasticsearchRepository的支持,就像你說的那樣,並且使用了Spring Data for Elasticsearch沒有實現的Specification API,所以擴展它需要一些工作。

你需要做的是建立自己的ElasticsearchRepositoryFactoryBean(即ElasticsearchDataTablesRepositoryFactoryBean)和自己實現AbstractElasticsearchRepository實現彈簧數據JPA的數據表就像DataTablesRepositoryImpl的細節。您還應該使用相同的方法定義自己的DataTablesRepository(ElasticsearchDataTablesRepository,用於擴展ElasticsearchRepository)。

的org.springframework.data.jpa.datatables.mapping類可以重複使用,但你必須重新使用QueryBuildersSpecificationFactory發現elasticsearch邏輯,這將是最耗時的部分我想象。

當你做,你可以只使用喜歡的彈簧數據JPA的數據表,即:

@EnableElasticsearchRepositories(repositoryFactoryBeanClass = ElasticsearchDataTablesRepositoryFactoryBean.class)) 

描述的@EnableElasticsearchRepositories並與您的ElasticsearchDataTablesRepository接口擴展您的倉庫,你是好去。

僅供參考,您應該查看SpecificationFactoryAbstractElasticsearchRepository(搜索方法)並熟悉Elasticsearch QueryBuilders

+0

非常感謝:) –

相關問題