Общие данные Spring 2.1.2 MongoDB не может десериализовать Необязательное значение
Общие данные Spring 2.1.2 (и данные MongoDB 2.1.2) не могут десериализовать необязательные поля из моего класса. Он работал с предыдущей версией (2.0.8), теперь мой объект сохраняется в БД (с MongoRepository.save), но есть исключение, когда я пытаюсь его прочитать (MongoRepository.findById). Я сузил точное поле, и проблема заключается в хранении Optional:
java.lang.UnsupportedOperationException: Cannot set immutable property java.util.Optional.value!
at org.springframework.data.mapping.model.BeanWrapper.setProperty(BeanWrapper.java:86) ~[spring-data-commons-2.1.2.RELEASE.jar:2.1.2.RELEASE]
at org.springframework.data.mapping.model.ConvertingPropertyAccessor.setProperty(ConvertingPropertyAccessor.java:61) ~[spring-data-commons-2.1.2.RELEASE.jar:2.1.2.RELE
и мой класс:
координаты публичного класса {частная двойная широта; частная двойная долгота; частный Необязательная высота; }
есть исключение, когда данные в БД находятся в форме:
altitude: Object
value: 0
и нет ошибки, когда высота не имеет "значение"
altitude: Object
(неважно)
Он работал с предыдущей версией Spring Boot (и Spring Data Commons/Mongodb 2.0.8).
Я не могу найти какую-либо информацию об изменившемся поведении / различном обращении с Дополнительными и т.д.
Как это решить?
Должен ли я сохранить его как
private Double altitude;
с геттером:
public Optional<Double> getAltitude() {
return Optional.ofNullable(altitude);
}
или любым другим способом?