что является правилом отображения beego Raw().QueryRows()
это структура, которую я использовал:
type ProcessingNetworkDataProviderConfig struct {
Id int
NetworkId int
DataProviderId int
DistributorId int
EnableTargeting int
EnableReporting int
UsePrivateData int
UseExternalUserId int
UseUserMapping int
UseUserAttributes int
UserExchangeUrl string
EnableCache int
EnableBloomFilter int
EnableDisplayAds int
EnableResellerMode int
EnableVisitorReporting int
Nsql string
MaxSegmentNumber int
ExpirationDays int
DeltaIngest int
Pkg int
Trackednum int
Comment string
ProcessingStatus string
}
и это таблица в MySQL (desc processing_network_data_provider_config
):
+--------------------------+---------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------------------+---------------+------+-----+---------+----------------+
| id | bigint(20) | NO | PRI | NULL | auto_increment |
| network_id | bigint(20) | NO | MUL | NULL | |
| data_provider_id | bigint(20) | NO | MUL | NULL | |
| distributor_id | bigint(20) | YES | MUL | NULL | |
| enable_targeting | tinyint(1) | NO | | 0 | |
| enable_reporting | tinyint(1) | NO | | 0 | |
| use_private_data | tinyint(1) | NO | | 0 | |
| use_external_user_id | tinyint(1) | NO | | 0 | |
| use_user_mapping | tinyint(1) | NO | | 0 | |
| use_user_attributes | tinyint(1) | NO | | 1 | |
| user_exchange_url | varchar(255) | YES | | NULL | |
| enable_cache | tinyint(1) | NO | | 1 | |
| enable_bloom_filter | tinyint(1) | NO | | 0 | |
| enable_display_ads | tinyint(1) | NO | | 1 | |
| enable_reseller_mode | tinyint(1) | NO | | 0 | |
| enable_visitor_reporting | tinyint(1) | NO | | 1 | |
| Nsql | varchar(2000) | YES | | NULL | |
| seg_num | int(11) | YES | | NULL | |
| exp_date | int(11) | YES | | NULL | |
| delta_ingest | tinyint(1) | YES | | NULL | |
| package | tinyint(1) | YES | | NULL | |
| tracked_num | int(11) | YES | | NULL | |
| Comment | varchar(2000) | YES | | NULL | |
| ProcessingStatus | varchar(30) | YES | | NULL | |
+--------------------------+---------------+------+-----+---------+----------------+
Я использовал это для чтения базы данных:
var tt []*ProcessingNetworkDataProviderConfig
sql := 'SELECT * FROM processing_network_data_provider_config'
if _, err := o.Raw(sql).QueryRows(&tt); err != nil {
fmt.Println("fff wo")
beego.Error("Error when querying network configuration: ", err.Error())
}
fmt.Println(tt[0])
и выход был:
&{49 1271 1 -1 1 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 }
Однако в этом должна быть какая-то строка, где они? Я полагаю, что это правило отображения делает это неудачным, я прав?
https://beego.me/docs/mvc/model/models.md
Основываясь на соглашении об именах, ваше имя поля структуры будет преобразовываться в snake_case как использование для вашей схемы БД, и я замечаю ваш "ProcessStatus" в схеме. Поэтому я считаю, что у вас есть 2 варианта:
1. Переименуйте столбец "ProcessingStatus" в snake_case
2. Используйте специальное сопоставление с тегом struct:
ProcessingStatus string 'orm:"column(processing_status)"