0

私は現在、Hibernateを使用したSpringデータからElasticSearchを使用したSpringデータに変換しています。SpringデータでElasticSearchを使用すると自動的に数値IDを生成

以前は、@GeneratedValue(strategy = GenerationType.IDENTITY)という注釈を使用して、自分のエンティティのIDを自動生成できました。このようにして、エンティティが保存されると、ID番号が生成されます。

しかし、ElasticSearchが同じ結果を達成するために使用するアノテーションは見つからないようです。

にHibernateアノテーションを使用してエンティティ:@GeneratedValue注釈にElasticSearch当量が

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

ありますか?そうでない場合は、ElasticSearchを使用しているときにidフィールドを設定する最適な方法は何ですか?

答えて

0

https://docs.jboss.org/hibernate/stable/search/reference/en-US/html_single/#search-mapping-entityに関するドキュメントは、@GeneratedValueが正しく動作するはずです。適切な統合ライブラリを使用していますか?

+0

感謝を。このエリアでElasticSearchの経験がありますか? – pike

+0

申し訳ありませんが、ElasticSearchでHibernateを使用していたことを理解しました。純粋なElasticSearch APIを使用している場合は、ここに記載されているPOSTを使用してください: https://www.elastic.co/guide/en/elasticsearch/guide/current/index-doc.html –

0

私は同じ問題を抱えていたし、このコードを使用して、それを解く:答えが、私は@GeneratedValueと同等に機能することができElasticSearch注釈を探していますのため

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

    @Id 
    @Column(name = "id") 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    @GeneratedValue(generator="generator") 
    @org.springframework.data.annotation.Id 
    private long id; 
関連する問題