Я использую OAT ++ с пользовательским перечислением для сериализации/десеризации в DTO и интеграции их с разъемом MySQL. Я сталкиваюсь с проблемами при сопоставлении перечисления в /из поля JSON и базы данных.
Я использую OAT ++ с пользовательским перечислением для сериализации/десеризации в DTO и интеграции их с разъемом MySQL. Я сталкиваюсь с проблемами при сопоставлении перечисления в /из поля JSON и базы данных.[code]#pragma once
#include #include
enum class AddressType { Residential, Commercial, Industrial, Agricultural };
class AddressTypeConvertor { public: static std::unordered_map enumToStringMap; static std::unordered_map stringToEnumMap;
create: < /p> bankAccountDto->AccountType.get(); < /code> < /li> Получить от db: < /p> bankAccountDto->AccountNumber = row[2].get(); < /code> < /li> < /ul> Ошибка времени компиляции: < /p> .set("Type", advertisementDto->Type.get()) see reference to function template instantiation 'mysqlx::abi2::r0::Value::Value(const C *)' being compiled with [ T=AdvertisementType, C=AdvertisementType ] see declaration of 'mysqlx::abi2::r0::string::traits' with [ C=AdvertisementType ] see reference to function template instantiation 'mysqlx::abi2::r0::string::string(const C *)' being compiled with [ C=AdvertisementType ] < /code> < /li> < /ol> Ни один подход не работает: < /p>
Первый подход не выполняет во время выполнения с проблемами десериализации. /> Мои вопросы: < /p>
Какой правильный способ сериализации /deserialize enums в Oat ++ при использовании соединителя JSON и MySQL? Используйте Oatpp's enum () [/code] макрос или приклеивание к классу enum + конвертер? Какой шаблон вы используете в производстве, чтобы избежать этих ошибок?>