Конвертер полей Spring Data MongoDB: есть ли способ передать параметр?

#java #mongodb #jackson #spring-data #spring-data-mongodb

#java #mongodb #джексон #spring-data #spring-data-mongodb

Вопрос:

Когда наше приложение загружает экземпляр DBObject / Document из нашего MongoDB, нам нужно преобразовать все даты UTC в нем в значения ZoneDateTime, используя zoneIdName, который находится внутри экземпляра DBObject / Document. У нас много полей даты в DBObject, поэтому я бы хотел избежать необходимости внедрять конвертер Spring Data MongoDB уровня DBObject.

Возможно ли использовать конвертер Spring Data MongoDB уровня поля DBObject, такой как следующий, который использует поле в DBObject (т.Е. zoneIdName), чтобы иметь возможность выполнять преобразование в ZoneDateTime? Если нет, мне придется реализовать конвертер на уровне объекта, но это будет утомительно…

Спасибо за проявленный интерес и потраченное время.

 class ZonedDateTimeReadConverter :
    Converter<Date, ZonedDateTime> {

    override fun convert(date: Date): ZonedDateTime {
        // Need to replace "America/LosAngeles" with 
        // a value from a field in the object being processed.
        return date.toInstant().atZone(ZoneId.of("America/LosAngeles"))
    }
}
 

Ответ №1:

кажется, что конвертер для всего объекта является единственным вариантом