我的应用程序同时使用 Spring Data JPA 和 Spring Data Elasticsearch。
我计划首先保留 JPA 实体,然后将它们映射到稍微不同的 java 类(Elasticsearch 文档),最后将该文档索引到 Elasticsearch 索引中。
但是,我有几个问题,例如如何、在何处以及何时索引文档。
- 索引是一个耗时的过程,应该是异步的吗?
- 什么设计模式可以帮助我避免出现以下有问题的代码?
saveAdvertisement
方法来自AdvertisementService
:
public void saveAdvertisement(Advertisement jpaAdvertisement) {
jpaAdvertisementRepository.save(jpaAdvertisement);
//somehow map the jpa entity to the es document
elasticSearchTemplate.index(esAdvertisement);
}
我必须在同一方法中有两个问题:
- JPA 坚持
- 弹性搜索索引