DataTableRepository in Spring data Elasticsearch

Pranav C Balan

Currently, we are using spring data JPA with MySql database with DataTabaleRepository which works well with JPA. Now we are moving our data to Spring data elasticserch but DataTabaleRepository is not working with that. Is there any alternative for that or how can I implement a custom repository for that?

Nikolai Luthman

spring-data-jpa-datatables does not implement support for ElasticsearchRepository, as you say and use the Specification API which is not implemented by Spring Data for Elasticsearch, so extending it would take some work.

What you need to do is create your own ElasticsearchRepositoryFactoryBean (ie. ElasticsearchDataTablesRepositoryFactoryBean) and your own implementation of AbstractElasticsearchRepository that implements the specifics of spring-data-jpa-datatables just like DataTablesRepositoryImpl. You should also define your own DataTablesRepository (ElasticsearchDataTablesRepository that extends ElasticsearchRepository) with the same methods.

The org.springframework.data.jpa.datatables.mapping classes can be reused, but you'll have to recreate the logic found in SpecificationFactory for elasticsearch using QueryBuilders, which will be the most time consuming part I imagine.

When you're done, you can use the @EnableElasticsearchRepositories just like described by spring-data-jpa-datatables ie.:

@EnableElasticsearchRepositories(repositoryFactoryBeanClass = ElasticsearchDataTablesRepositoryFactoryBean.class))

And extend your repositories with your ElasticsearchDataTablesRepository interface and you're good to go.

For reference you should look at SpecificationFactory and AbstractElasticsearchRepository (the search method) and get familiar with Elasticsearch QueryBuilders.

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

Elasticsearch Spring Data with RestHighLevelClient

Spring Data Elasticsearch Inheritance

FieldNamingStrategy with Spring Data Elasticsearch

Does Spring Data Elasticsearch support Amazon Elasticsearch?

Elasticsearch Rest Client with Spring Data Elasticsearch

Elasticsearch pagination with Java and Spring Data Elasticsearch

elasticsearch, spring-data and hibernate

Spring Data Elasticsearch Query Merge

spring data Elasticsearch dynamic mapping

spring data elasticsearch field mapping

Spring data elasticsearch Filter aggregations

Multitenancy with spring-data-elasticsearch

Spring data elasticsearch query array of nested objects

Spring Data Elasticsearch @Document indexName defined at runtime

Spring Data Elasticsearch : detect mapping differences

Spring Data Elasticsearch - how to use ElasticsearchRestTemplate?

Spring Data Elasticsearch documents not being deserialized

Spring Data Elasticsearch - Create keyword field with normalizer

Partial update with Spring Data Elasticsearch repository

Spring Data Elasticsearch's ElasticsearchTemplate vs ElasticsearchRepository

AliasQuery is deprecated in Spring Data Elasticsearch 4.1

How to set OpType on IndexQuery in Spring Data Elasticsearch

Spring Data Elasticsearch id vs. _id

Spring-data-elasticsearch maven dependency not found

How add sorting to spring data elasticsearch

Spring Data ElasticSearch - cannot find GeoPoint field

Spring Data Elasticsearch's @Field annotation not working

spring-data-elasticsearch - registering custom analyser

refreshInterval = "-1" not working in spring-data-elasticsearch