У меня есть таблица в моей БД, что имена столбцов начинаются с кепок (то есть: FMR_Number, Primary_Value). Имя столбца вне моего контроля Все остальные столбцы в БД (в других таблицах) являются нижним регистром.Я сопоставил структуру с таблицей, но я все время получаю недостающую ошибку назначения из запроса. Я полагаю, что это потому, что для параметра mapper выбрано ToLower (которая является то, что нужно для везде). Я пытался использовать этот форматКаков правильный способ использования «и» для указания имен столбцов db?
StructField string 'db:"RealColumnName"'
указать отображение явно, но я получаю нелегальное руно буквальным. Когда я иду посмотреть на примерах в коде других народов я вижу его представленный в том, как я только что попробовал. Если я отменил ' и "
StructField string "db:'RealColumnName'"
Я не получаю нелегальное руно опечатки, но я получаю недостающую ERR назначения. Что я здесь делаю неправильно? Я использую sqlx.
Мои Struct
type pah struct {
FMR_Fund_Number string 'db:"FMR_Fund_Number"'
Business_Data_Date string 'db:"Business_Data_Date"'
Outbound_Composition_Code string 'db:"Outbound_Composition_Code"'
Composition_Sub_Code string 'db:"Composition_Sub_Code"'
Composition_Sub_Code_Description string 'db:"Composition_Sub_Code_Description"'
Position_Name string 'db:"Position_Name"'
Primary_Value float64 'db:"Primary_Value"'
Record_Order int 'db:"Record_Order"'
Tier_Indicator string 'db:"Tier_Indicator"'
}
Мой дб вызов
func loadAssetAllocation() AssetAllocations {
pahGroup := []pah{}
pahQuery := "SELECT FMR_Fund_Number,Business_Data_Date,Outbound_Composition_Code,Composition_Sub_Code,Composition_Sub_Code_Description,Primary_Value,Tier_Indicator,Record_Order FROM PAH WHERE FMR_Fund_Number = \"312\" AND Outbound_Composition_Code = \"MDCAT\" AND Business_Data_Date = (SELECT Business_Data_Date FROM PAH ORDER BY Business_Data_Date DESC LIMIT 1) AND Composition_Sub_Code <> \"TAXADV\" ORDER BY Record_Order ASC"
assetAlloc := AssetAllocations{}
err := ffDB.Select(&pahGroup, pahQuery)
fmt.Println("pahQuery AssetAllocation error: ", err)
assetAlloc.AssetAll = pahGroup
return assetAlloc
}
структура тег просто должен быть строковым. Обычно люди используют синтаксис backtick, потому что он устраняет необходимость избежать встроенных кавычек, но такой тег, как '' db: \ "FMR_Fund_Number \" "', будет таким же правильным. –
@JamesHenstridge Да, правильно. Пытался сдержать замешательство - я не думаю, что видел случай с недействительным «в дикой природе», но все же (никогда не говори никогда). – elithrar