当前位置: 首页 > 知识库问答 >
问题:

使用带有Spring数据的ElasticSearch时自动生成数值id

邓崇凛
2023-03-14

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

以前,我能够使用注释@generatedvalue(strategy=generationtype.identity)自动生成实体的id。这样,当实体被保存时,就会为它生成一个id号。

使用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 + "]";
    }

是否存在与@GeneratedValue注释等价的ElasticSearch?如果不是,使用ElasticSearch时填充id字段的最佳方法是什么?

共有1个答案

滑乐逸
2023-03-14

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

 类似资料:
  • 我试图使用Spring Data连接Elasticsearch 6.1(我使用Spring Boot) 但是提到最新版本只支持5.2。,有没有支持ES 6.1的替代方案? https://github.com/spring-projects/spring-data-elasticsearch/blob/master/README.md

  • 我正在尝试使用Spring启动和Spring数据沙发库项目创建一个简单的原型。到目前为止,我一直试图使用Spring数据的查询派生机制从方法名称构建N1QL查询, 这阻碍了我。 这是我的存储库接口定义,问题出在findBy…行。 如果我排除该方法定义,则应用程序会毫无问题地启动。如果我包含它,则由于以下错误而无法创建存储库bean: 如果我指定一个@Query(例如:@Query,“#{#n1ql

  • 我正在配置elasticsearch spring应用程序,并遵循我创建的RestHighLevelClient文档: 现在我希望我所有的文档都有snake_case的命名策略,在文档上这是我发现的: 在没有进一步配置的情况下,Spring Data Elasticsearch将使用对象的属性名称作为Elasticsearch中的字段名称。这可以通过使用该属性上的@Field注释来更改单个字段。

  • 我需要firebase来存储任何模型的自动增量Id数据,我应该做什么?

  • 问题内容: 我有一个带有id(guid)列的sql表。如何强制数据库为每条新记录自动生成新的Guid? 问题答案: 添加。