"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como integrar gorm.Model em definições de buffer de protocolo com suporte para DateTime?

Como integrar gorm.Model em definições de buffer de protocolo com suporte para DateTime?

Publicado em 2024-11-02
Navegar:522

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

Integrando gorm.Model em definições de buffer de protocolo

Ao integrar os campos gorm.Model de gorm em definições de protobuf, surgem desafios devido à falta de suporte de data e hora no proto3. Este artigo explora soluções para esse problema.

Mapeamento de tipo de campo ProtoBuf

CreatedAt, UpdatedAt: Use google.protobuf.Timestamp com a opção gogoproto.stdtime.

DeletedAt: Trate-o como um campo de carimbo de data/hora opaco com uma função de conversão.

Limitações de geração de código

O projeto protoc-gen-gorm enfrentou desafios com proto2 e Compatibilidade proto3.

Solução de script de pós-processamento

Para integrar campos gorm.Model, um script de pós-processamento como gorm.sh pode ser usado após a geração do arquivo go. Este script pode atualizar o código gerado para incluir anotações específicas do GORM.

Execução e resultados do script

Execute o script com ./gorm.sh file.pb.go no pb.go gerado arquivo. O script adicionará anotações para id, nome, etc., permitindo que o GORM interaja adequadamente com os campos do modelo.

Conclusão

A integração do gorm.Model requer manipulação adicional de campos de data e hora e geração de código personalizada ou pós-processamento. Seguindo essas etapas, os desenvolvedores podem integrar com sucesso os campos GORM em suas protodefinições.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3