首页 > 解决方案 > Spring数据JPA弹性搜索和Mongo

问题描述

我有一个java类,其中@Document对象来自elasticsearch包

import org.springframework.data.elasticsearch.annotations.Document;

    @Data
    @AllArgsConstructor
    @Document(indexName = "user_data_index", type = "user_data")
    public class User {

        @Id
        private String id;
        private String name;

        public User() {};
    } 

我想为 Spring Data Mongo 使用相同的对象。

例子:-

import org.springframework.data.mongodb.core.mapping.Document;

import java.util.List;

@Data
@AllArgsConstructor
//@Document(indexName = "user_data_index", type = "user_data")
@Document(collection="user")
public class User {

    @Id
    private String id;
    private String name;

    public User() {};
}

这样我就可以在数据摄取期间将数据发送到 mongo 和 elasticsearch。我怎样才能做到这一点?

标签: hibernatejpaspring-dataspring-data-mongodbspring-data-elasticsearch

解决方案


您至少需要为@Document注释之一使用完整的限定路径:

import org.springframework.data.elasticsearch.annotations.Document;

@Data
@AllArgsConstructor
@Document(indexName = "user_data_index", type = "user_data")
@org.springframework.data.mongodb.core.mapping.Document(collection="user")
public class User {

    @Id
    private String id;
    private String name;

    public User() {};
} 

推荐阅读