# #java #spring #firebase #google-cloud-firestore
#Ява #весна #огневая база #google-облако-firestore
Вопрос:
У меня есть приложение в spring boot и firestore в качестве базы данных.
Поскольку в firestore есть некоторые особенности хранения денег, я создал MoneyVO. Но сейчас я застрял, потому что пытаюсь извлечь данные из базы данных, и она не может десериализовать этот объект.
Вот отпечаток объекта в firestore:
И это мой класс:
@Data @AllArgsConstructor @NoArgsConstructor public class MoneyVO implements Serializable { private String value; private CurrencyEnum currency; }
А вот метод обслуживания, который извлекает данные:
@GetMapping public Pagelt;Productgt; findAll(@RequestBody FilterDTO filter){ return QueryUtil.getPage(productRepository.findAll(), filter); }
Это модельный продукт:
@Data @Builder @NoArgsConstructor @AllArgsConstructor @Document(collectionName = "productCollection") public class Product extends BaseEntity{ private String name; private UnityMeasurement unityMeasurement; private Integer unityMeasurementQuantity; private MoneyVO value; /// Here are the field that cannot be desserialized private Float amount; }
Сообщение об ошибке выглядит так:
«сообщение»: «Не удалось десериализовать объект. Не удалось преобразовать значение типа java.lang.Строка для удвоения (находится в поле ‘значение.ценность’)»,
Я действительно застрял. Как я могу десериализовать этот объект?
Комментарии:
1. Снимок экрана
value.value
в вашей базе данных и вMoneyVO
классе-это строка, поэтому я не думаю, что это вызовет проблему. Вы уверены, что исключение исходит от этого класса и данных?