【问题标题】:Belongs To Association Golang Gorm not being found with explicit ForeignKey未使用显式 ForeignKey 找到属于关联 Golang Gorm
【发布时间】:2016-06-28 21:35:10
【问题描述】:

我有一个这样的贸易结构:

type Trade struct {
    ID            uint
    BuyExecution  Execution `gorm:"ForeignKey:BuyExecution"`
    SellExecution Execution `gorm:"ForeignKey:SellExecution"`
    Px            int
    Shares        int
}

还有一个像这样的执行结构:

type Execution struct {
    ID                uint
    Side              string
    Symbol            string
    Trade             *Trade
}

架构:

CREATE TABLE `executions` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `side` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `symbol` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `trade_id` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  PRIMARY KEY (`id`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;



CREATE TABLE `trades` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `buy_execution_id` int(11) NOT NULL,
  `sell_execution_id` int(11) NOT NULL,
  `px` int(11) NOT NULL,
  `shares` int(11) NOT NULL,
  `trade_id` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  PRIMARY KEY (`id`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

但是,当创建执行然后从具有适当关系的 yaml 固定装置进行交易时,我收到一个错误:

[2016-06-28 21:17:50]  sql: converting Exec argument #0's type: unsupported type models.Execution, a struct 

这指向我在这里拨打的Preload

var trade Trade
db.Preload("BuyExecution").First(&trade)

调试这个问题很困难,所以试图获得一些帮助。

【问题讨论】:

    标签: go go-gorm


    【解决方案1】:

    像这样定义Trade 结构

    type Trade struct {
        ID              uint
        BuyExecution    Execution `gorm:"ForeignKey:BuyExecutionID"`
        BuyExecutionID  int
        SellExecution   Execution `gorm:"ForeignKey:SellExecutionID"`
        SellExecutionID int
        Px              int
        Shares          int
    }
    

    甚至

    type Trade struct {
        ID              uint
        BuyExecution    Execution
        BuyExecutionID  int
        SellExecution   Execution
        SellExecutionID int
        Px              int
        Shares          int
    }
    

    【讨论】:

      猜你喜欢
      • 2015-06-08
      • 1970-01-01
      • 1970-01-01
      • 2018-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多