«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как интегрировать gorm.Model в определения буфера протокола с поддержкой DateTime?

Как интегрировать gorm.Model в определения буфера протокола с поддержкой DateTime?

Опубликовано 2 ноября 2024 г.
Просматривать:607

How to Integrate gorm.Model into Protocol Buffer Definitions with DateTime Support?

Интеграция gorm.Model в определения буфера протокола

При интеграции полей gorm.Model в определения protobuf возникают проблемы из-за отсутствия поддержки datetime в proto3. В этой статье рассматриваются решения этой проблемы.

Сопоставление типов полей ProtoBuf

CreatedAt, UpdatedAt: Используйте google.protobuf.Timestamp с параметром gogoproto.stdtime.

DeletedAt: Обработайте его как непрозрачное поле метки времени с функцией преобразования.

Ограничения генерации кода

Проект protoc-gen-gorm столкнулся с проблемами с proto2 и совместимость с proto3.

Решение сценария постобработки

Для интеграции полей gorm.Model после создания файла go можно использовать сценарий постобработки, такой как gorm.sh. Этот сценарий может обновить сгенерированный код, включив в него аннотации, специфичные для GORM.

Выполнение сценария и результаты

Выполните сценарий с помощью ./gorm.sh file.pb.go на сгенерированном pb.go файл. Скрипт добавит аннотации для идентификатора, имени и т. д., позволяя GORM правильно взаимодействовать с полями модели.

Заключение

Интеграция gorm.Model требует дополнительной обработки полей даты и времени и настраиваемой генерации кода. или постобработка. Следуя этим шагам, разработчики могут успешно интегрировать поля GORM в свои определения прототипов.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3