我正在尝试将数据保存到弹性搜索数据库。我的代码如下:
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"
}
为什么会发生这种情况?
答案 0 :(得分:0)
我认为杰克逊和Spring数据的类型检查是相互影响的。它从检查bean属性和@JsonProperty注释中的一个属性中获取一个属性。
也许你可以通过简单地将注释移动到getName()方法来修复它。