将 ElasticSearch 与 Spring Data 结合使用时自动生成数字 id

pik*_*ike 5 java spring elasticsearch spring-data spring-data-elasticsearch

我目前正在将我所做的一个项目从 Spring Data with Hibernate 转换为 Spring Data with ElasticSearch。

之前,我能够使用注释自动生成实体的 id @GeneratedValue(strategy = GenerationType.IDENTITY)。这样,当实体被保存时,就会为其生成一个 ID 号。

但是,我似乎找不到 ElasticSearch 用于实现相同结果的注释。

使用Hibernate注解的实体:

@Entity
@Table(name = "person")
public class Person {

    @Id
    @Column(name = "id")
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private long id;

    @Column(name = "name")
    private String name;

    @Column(name = "age")
    private int age;

    public long getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public Person() {
    }

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    @Override
    public String toString() {
        return "Person [id=" + id + ", name=" + name + ", age=" + age + "]";
    }
Run Code Online (Sandbox Code Playgroud)

是否有与 @GenerateValue 注释等效的 ElasticSearch?如果不是,那么使用 ElasticSearch 时填充 id 字段的最佳方法是什么?

Pio*_*kin -2

https://docs.jboss.org/hibernate/stable/search/reference/en-US/html_single/#search-mapping-entity上的文档似乎表明@GeneratedValue应该正常工作。您是否使用正确的集成库?

  • 感谢您的回答,但我正在寻找一个可以充当 @GenerateValue 等效项的 ElasticSearch 注释。您在这方面有 ElasticSearch 的经验吗? (2认同)