Spring Data Версия Elasticsearch: 3.2.6.RELEASE Версия Elasticsearch: 7.6.2
Я пытаюсь десериализовать список MerchantCategory
, используя:
SearchQuery getAllQuery = new NativeSearchQueryBuilder()
.withQuery(matchAllQuery())
.build();
return elasticsearchTemplate.queryForList(getAllQuery, MerchantCategory.class);
String id поле правильно установлено в списке MerchsntCategory
, но остальные поля остаются null
.
Я подтвердил, что поля документов сохраняются в Elasticsearch с помощью Kibana.
Отображения полей отправлено в Elasticsearch при запуске приложения Spring Boot:
request [PUT http://127.0.0.1:9200/merchantcategory/_mapping/merchantcategory?master_timeout=30s&include_type_name=true&timeout=30s] returned 1 warnings: [299 Elasticsearch-7.6.2-ef48eb35cf30adf4db14086e8aabd07ef6fb113f "[types removal] Using include_type_name in put mapping requests is deprecated. The parameter will be removed in the next major version."]
Вот класс MerchantCategory
:
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Getter
@Setter
@Document(indexName = "merchantcategory", type = "merchantcategory")
public class MerchantCategory implements Serializable {
@Id
@JsonIgnore
private String id;
@SerializedName("ParentId")
private Long parentId;
@SerializedName("Name")
private String name;
@SerializedName("Description")
private String description;
@SerializedName("UrlName")
private String urlName;
@SerializedName("Id")
private Long categoryId;
@SerializedName("MerchantsInCategory")
private List<MerchantCategoryRelationship> merchants;
}
Я использую gson
для сериализации:
val bulkRequest = new BulkRequest();
entities.subList(startIndex, endIndex).forEach(e ->{
String source = gson.toJson(e);
val indexRequest = new IndexRequest(index).source(source, XContentType.JSON).type(type);
bulkRequest.add(indexRequest);
});
highLevelClient.bulkAsync(bulkRequest, RequestOptions.DEFAULT, getListener());
Я тоже пробовал то же самое с merchantCategoryElasticsearchRepository.findAll();
, и у меня такая же проблема.
Почему сериализуется только поле String id, а не остальные?