0

Actuellement, nous utilisons des données de printemps JPA avec base de données MySQL avec DataTabaleRepository qui fonctionne bien avec JPA. Maintenant, nous passons nos données à Spring elasticserch données, mais DataTabaleRepository ne fonctionne pas avec ça. Y at-il une alternative pour cela ou comment puis-je implémenter un référentiel personnalisé pour cela?DataTableRepository dans Spring data Elasticsearch

+0

Quelle partie ne fonctionne pas exactement? – Veeram

+0

Je veux personnaliser la réponse de la même manière sur https://github.com/darrachequesne/spring-data-jpa-datatables ... –

Répondre

1

spring-data-jpa-datatables n'implémente pas la prise en charge de ElasticsearchRepository, comme vous le dites, et utilisez l'API de spécification qui n'est pas implémentée par Spring Data pour Elasticsearch, donc l'extension nécessiterait un certain travail.

Ce que vous devez faire est de créer votre propre ElasticsearchRepositoryFactoryBean (ie. ElasticsearchDataTablesRepositoryFactoryBean) et votre propre implémentation de AbstractElasticsearchRepository qui met en œuvre les spécificités du ressort des données JPA-datatables tout comme DataTablesRepositoryImpl. Vous devez également définir votre propre DataTablesRepository (ElasticsearchDataTablesRepository qui étend ElasticsearchRepository) avec les mêmes méthodes.

Les classes org.springframework.data.jpa.datatables.mapping peuvent être réutilisés, mais vous devrez recréer la logique trouvée dans SpecificationFactory pour ElasticSearch en utilisant QueryBuilders, qui sera la plus grande partie de la consommation du temps j'imagine.

Lorsque vous avez terminé, vous pouvez utiliser les @EnableElasticsearchRepositories juste comme décrit par ressort des données JPA-datatables-à-dire .:

@EnableElasticsearchRepositories(repositoryFactoryBeanClass = ElasticsearchDataTablesRepositoryFactoryBean.class)) 

Et étendre vos dépôts avec votre interface ElasticsearchDataTablesRepository et vous êtes bon aller.

Pour référence, vous devriez regarder SpecificationFactory et AbstractElasticsearchRepository (la méthode de recherche) et se familiariser avec Elasticsearch QueryBuilders.

+0

Merci beaucoup :) –