mirror of
https://github.com/spring-projects/spring-data-elasticsearch.git
synced 2025-05-30 16:52:11 +00:00
DATAES-936 - Take id property from the source when deserializing an entity.
Original PR: #523
This commit is contained in:
parent
54909a83cb
commit
8d4c305732
@ -860,13 +860,21 @@ public class MappingElasticsearchConverter
|
||||
@Nullable
|
||||
public Object get(ElasticsearchPersistentProperty property) {
|
||||
|
||||
String fieldName = property.getFieldName();
|
||||
|
||||
if (target instanceof Document) {
|
||||
// nested objects may have properties like 'id' which are recognized as isIdProperty() but they are not
|
||||
// Documents
|
||||
Document document = (Document) target;
|
||||
|
||||
if (property.isIdProperty() && document.hasId()) {
|
||||
return document.getId();
|
||||
Object id = null;
|
||||
|
||||
// take the id property from the document source if available
|
||||
if (!fieldName.contains(".")) {
|
||||
id = target.get(fieldName);
|
||||
}
|
||||
return id != null ? id : document.getId();
|
||||
}
|
||||
|
||||
if (property.isVersionProperty() && document.hasVersion()) {
|
||||
@ -879,8 +887,6 @@ public class MappingElasticsearchConverter
|
||||
return ((SearchDocument) target).getScore();
|
||||
}
|
||||
|
||||
String fieldName = property.getFieldName();
|
||||
|
||||
if (!fieldName.contains(".")) {
|
||||
return target.get(fieldName);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user