【问题标题】:gorm has many relation with foreignKey referencegorm 与 foreignKey 参考有很多关系
【发布时间】:2021-10-27 07:08:26
【问题描述】:

我的目标是归档与 gorm 的“有很多”关系

我不想生成任何 ID,所以我故意不在我的结构中使用 gorm.Model

我设置了两个结构,例如:

type Application struct {
  Name         string        `json:"name" gorm:"primaryKey"`
  Description  string        `json:"description"`
  Translations []Translation `json:"titles" gorm:"foreignKey:ApplicationName;references:Name"`
}

type Translation struct {
  ApplicationName string `json:"applicationName" gorm:"primaryKey"`
  Locale          string `json:"locale" gorm:"primaryKey"`
  Value           string `json:"value"`
}

Translation.ApplicationName 应该是 Applications 的外键

(Translation.ApplicationName + Translation.Locale) 翻译的主键

创建应用程序后

{
  "name" : "postedApplication1",
  "description" : "postedDescription3",
  "titles" : [
    {
        "locale": "de-DE",
        "value":"deutsch"
    },
     {
        "locale": "de-AT",
        "value":"AT"
    }
  ]
}

我收到以下错误

ON CONFLICT 子句不匹配任何 PRIMARY KEY 或 UNIQUE 约束 [0.065ms] [rows:0] 插入translations (application_name,locale,value) 价值观 ("postedApplication1","de-DE","deutsch"),("postedApplication1","de-AT","AT") ON CONFLICT (application_name,locale) 做更新集 application_name=excluded.application_name

ON CONFLICT 子句不匹配任何 PRIMARY KEY 或 UNIQUE 约束 [0.531ms] [rows:0] 更新applications SET description="postedDescription3" 在哪里 name = "postedApplication1" [杜松子酒] 2021/08/27 - 11:23:00 | 200 | 841.953µs | 127.0.0.1 | 发布“/应用程序”

有人知道我做错了什么

【问题讨论】:

    标签: go go-gorm go-gin


    【解决方案1】:

    已解决 qx.X,p

    一切都正确!

    安装 vscode-sqlite 并检查数据库后,我发现 sqlite 表与我设计的不同

    问题在于 AutoMigrate 由于在开发过程中发生了很大变化而产生了无效状态

    database.AutoMigrate(&models.Application{}, &models.Translation{})
    

    我不得不删除 sqlite "gorm.db" 文件并重新启动应用程序

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-06
      • 2018-08-20
      • 2020-10-24
      相关资源
      最近更新 更多