【问题标题】:Spring Data elastic search duplicate json property generatedSpring Data弹性搜索重复json属性生成
【发布时间】:2016-02-26 19:52:27
【问题描述】:

我正在尝试将数据保存到弹性搜索数据库。我的代码如下:

Pojo 类

@Document(indexName = "testindex", type = "test")
public class TestIndex {
    @Id
    private String id;
    @JsonProperty("Name1")
    private String Name;
    public String getId() {return id;}
    public void setId(String id) {this.id = id; }
    public String getName() {return Name;   }
    public void setName(String name) {this.Name = name; }
}

Repository类如下:

公共接口 TestIndexRepository 扩展 ElasticsearchRepository {

   List<TestIndex> findByName(String Name);

}

测试方法如下:

 public void test() {       
    Iterable<TestIndex> iterable1 = testIndexRepository.findAll();      Iterator<TestIndex> i = iterable1.iterator();       
    while(i.hasNext()){             
    testIndexRepository.save(i.next());         
    } 
    }

问题 : 它在 db 中插入了多个 name 属性。

"_index": "testindex",
 "_type": "test",
  "_id": "AVE5MsrMtumI2QfxV3kI",
 "_score": 1,
 "_source": {
  "id": "AVE5MsrMtumI2QfxV3kI",
   "name": "Test Index 222",
   "Name1": "Test Index 222"
  }

发生这种情况的任何原因?

【问题讨论】:

    标签: spring-data spring-data-elasticsearch


    【解决方案1】:

    我认为 Jackson 和 Spring 数据的类型检查相互矛盾。它通过检查 bean 属性获得一个属性,并从 @JsonProperty 注释中获得一个属性。

    也许您可以通过简单地将注释移动到 getName() 方法来修复它。

    【讨论】:

      猜你喜欢
      • 2018-06-08
      • 2020-08-18
      • 1970-01-01
      • 2017-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-22
      • 2014-11-04
      相关资源
      最近更新 更多