首页 文章

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

提问于
浏览
0

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

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 回答

  • 0

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

    也许你可以通过简单地将注释移动到getName()方法来解决它 .

相关问题