Spring Data弹性搜索重复的json属性生成

时间:2015-11-24 11:32:09

标签: spring-data spring-data-elasticsearch

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

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; }
}

存储库类如下:

公共接口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"
  }

为什么会发生这种情况?

1 个答案:

答案 0 :(得分:0)

我认为杰克逊和Spring数据的类型检查是相互影响的。它从检查bean属性和@JsonProperty注释中的一个属性中获取一个属性。

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