Lorsqu'ils tentent d'analyser les résultats d'une requête dans des structures imbriquées avec SQLx, les utilisateurs peuvent rencontrer des erreurs telles que des noms de destination manquants. Ce problème survient lorsque les noms de champs de structure et les noms de colonnes de base de données ne correspondent pas exactement.
Comme suggéré dans la documentation SQLx, l'approche correcte consiste à intégrer les structures imbriquées. dans la structure parent. Par exemple :
type Customer struct { Id int `json:"id" db:"id"` Name string `json:"name" db:"name"` Address } type Address struct { Street string `json:"street" db:"street"` City string `json:"city" db:"city"` }
Dans cet exemple, la structure Address est intégrée dans la structure Customer. En intégrant la structure imbriquée, les noms de champs et les balises associés à l'adresse sont promus dans Customer. Par conséquent, SQLx peut mapper correctement les résultats sur les champs appropriés.
Il est important de noter que l'intégration de la structure imbriquée entraînera également l'aplatissement de la sortie lors du marshalling JSON. Pour conserver la structure imbriquée d'origine, vous pouvez remapper la structure de la base de données au type d'origine. Vous pouvez également analyser le résultat de la requête dans une interface map[string]{}, mais cela nécessite une gestion minutieuse des types de données Postgres dans Go.
Le respect de ces directives garantit une analyse correcte des résultats en structures imbriquées à l’aide de SQLx. En intégrant correctement les structures imbriquées ou en utilisant des approches alternatives telles que le remappage ou la numérisation dans une carte, vous pouvez extraire efficacement des structures de données complexes de votre base de données.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!