jjzjj

mysql - Beego QueryRows 映射失败

coder 2024-07-09 原文

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 以用于您的数据库模式,我注意到您在模式中的“ProcessingStatus”。所以我相信你有两个选择:
1.将“ProcessingStatus”列重命名为snake_case
2. 对你的结构标签使用特殊映射:

ProcessingStatus string `orm:"column(processing_status)"

关于mysql - Beego QueryRows 映射失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51202540/

有关mysql - Beego QueryRows 映射失败的更多相关文章

  1. ruby - 即使失败也继续进行多主机测试 - 2

    我已经构建了一些serverspec代码来在多个主机上运行一组测试。问题是当任何测试失败时,测试会在当前主机停止。即使测试失败,我也希望它继续在所有主机上运行。Rakefile:namespace:specdotask:all=>hosts.map{|h|'spec:'+h.split('.')[0]}hosts.eachdo|host|begindesc"Runserverspecto#{host}"RSpec::Core::RakeTask.new(host)do|t|ENV['TARGET_HOST']=hostt.pattern="spec/cfengine3/*_spec.r

  2. 使用canal同步MySQL数据到ES - 2

    文章目录一、概述简介原理模块二、配置Mysql使用版本环境要求1.操作系统2.mysql要求三、配置canal-server离线下载在线下载上传解压修改配置单机配置集群配置分库分表配置1.修改全局配置2.实例配置垂直分库水平分库3.修改group-instance.xml4.启动监听四、配置canal-adapter1修改启动配置2配置映射文件3启动ES数据同步查询所有订阅同步数据同步开关启动4.验证五、配置canal-admin一、概述简介canal是Alibaba旗下的一款开源项目,Java开发。基于数据库增量日志解析,提供增量数据订阅&消费。Git地址:https://github.co

  3. ruby-on-rails - 创建 ruby​​ 数据库时惰性符号绑定(bind)失败 - 2

    我正在尝试在Rails上安装ruby​​,到目前为止一切都已安装,但是当我尝试使用rakedb:create创建数据库时,我收到一个奇怪的错误:dyld:lazysymbolbindingfailed:Symbolnotfound:_mysql_get_client_infoReferencedfrom:/Library/Ruby/Gems/1.8/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundleExpectedin:flatnamespacedyld:Symbolnotfound:_mysql_get_client_infoReferencedf

  4. ruby - 正则表达式在哪个位置失败? - 2

    我需要一个非常简单的字符串验证器来显示第一个符号与所需格式不对应的位置。我想使用正则表达式,但在这种情况下,我必须找到与表达式相对应的字符串停止的位置,但我找不到可以做到这一点的方法。(这一定是一种相当简单的方法……也许没有?)例如,如果我有正则表达式:/^Q+E+R+$/带字符串:"QQQQEEE2ER"期望的结果应该是7 最佳答案 一个想法:你可以做的是标记你的模式并用可选的嵌套捕获组编写它:^(Q+(E+(R+($)?)?)?)?然后你只需要计算你获得的捕获组的数量就可以知道正则表达式引擎在模式中停止的位置,你可以确定匹配结束

  5. ruby - 使用 rbenv 和 ruby​​-build 构建 ruby​​ 失败,出现 undefined symbol : SSLv2_method - 2

    我正在尝试在配备ARMv7处理器的SynologyDS215j上安装ruby​​2.2.4或2.3.0。我用了optware-ng安装gcc、make、openssl、openssl-dev和zlib。我根据README中的说明安装了rbenv(版本1.0.0-19-g29b4da7)和ruby​​-build插件。.这些是随optware-ng安装的软件包及其版本binutils-2.25.1-1gcc-5.3.0-6gconv-modules-2.21-3glibc-opt-2.21-4libc-dev-2.21-1libgmp-6.0.0a-1libmpc-1.0.2-1libm

  6. ruby-on-rails - Ruby 的 'open_uri' 是否在读取或失败后可靠地关闭套接字? - 2

    一段时间以来,我一直在使用open_uri下拉ftp路径作为数据源,但突然发现我几乎连续不断地收到“530抱歉,允许的最大客户端数(95)已经连接。”我不确定我的代码是否有问题,或者是否是其他人在访问服务器,不幸的是,我无法真正确定谁有问题。本质上,我正在读取FTPURI:defself.read_uri(uri)beginuri=open(uri).readuri=="Error"?nil:urirescueOpenURI::HTTPErrornilendend我猜我需要在这里添加一些额外的错误处理代码...我想确保我采取一切预防措施来关闭所有连接,这样我的连接就不是问题所在,但是我

  7. ruby-on-rails - Ruby 流量控制 : throw an exception, 返回 nil 还是让它失败? - 2

    我在思考流量控制的最佳实践。我应该走哪条路?1)不要检查任何东西并让程序失败(更清晰的代码,自然的错误消息):defself.fetch(feed_id)feed=Feed.find(feed_id)feed.fetchend2)通过返回nil静默失败(但是,“CleanCode”说,你永远不应该返回null):defself.fetch(feed_id)returnunlessfeed_idfeed=Feed.find(feed_id)returnunlessfeedfeed.fetchend3)抛出异常(因为不按id查找feed是异常的):defself.fetch(feed_id

  8. ruby - gem 规范失败 - 2

    我正在为毕业设计开发GEM,TravisCI构建不断失败。这是我在Travis上的链接:https://travis-ci.org/ricardobond/perpetuus/builds/8709218构建错误是:$bundleexecrakerakeaborted!Don'tknowhowtobuildtask'default'/home/travis/.rvm/gems/ruby-1.9.3-p448/bin/ruby_noexec_wrapper:14:in`eval'/home/travis/.rvm/gems/ruby-1.9.3-p448/bin/ruby_noexec_

  9. ruby-on-rails - 无法安装 mysql2 0.3.14 gem - 2

    我看到其他人也遇到过类似的问题,但没有一个解决方案对我有用。0.3.14gem与其他gem文件一起存在。我已经完全按照此处指示完成了所有操作:https://github.com/brianmario/mysql2.我仍然得到以下信息。我不知道为什么安装程序指示它找不到include目录,因为我已经检查过它存在。thread.h文件存在,但不在ruby​​目录中。相反,它在这里:C:\RailsInstaller\DevKit\lib\perl5\5.8\msys\CORE\我正在运行Windows7并尝试在Aptana3中构建我的Rails项目。我的Ruby是1.9.3。$gemin

  10. ruby-on-rails - 只有当不是 nil 时才执行映射? - 2

    如果names为nil,则以下中断。我怎样才能让这个map只有在它不是nil时才执行?self.topics=names.split(",").mapdo|n|Topic.where(name:n.strip).first_or_create!end 最佳答案 其他几个选项:选项1(在其上执行map时检查split的结果):names_list=names.try(:split,",")self.topics=names_list.mapdo|n|Topic.where(name:n.strip).first_or_create!e

随机推荐