我正在尝试将数据保存到弹性搜索数据库 . 我的代码如下:
Pojo class
@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 class is as follows:
公共接口TestIndexRepository扩展ElasticsearchRepository {
List<TestIndex> findByName(String Name);
}
Test method is as follows:
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 回答
我认为 Jackson 和Spring数据的类型检查是相互影响的 . 它从检查bean属性和@JsonProperty注释中的一个属性中获取一个属性 .
也许你可以通过简单地将注释移动到getName()方法来解决它 .