gorm与外币参考文献有许多关系

我的目标是存档与Gorm的“有很多”关系


我不想有任何生成的ID,所以我故意不使用gorm。我的结构中的模型


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


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"`

}

翻译.应用程序名称应为应用程序的外键


(翻译应用程序名称 + 翻译区域设置)翻译的主键


创建应用程序后


{

  "name" : "postedApplication1",

  "description" : "postedDescription3",

  "titles" : [

    {

        "locale": "de-DE",

        "value":"deutsch"

    },

     {

        "locale": "de-AT",

        "value":"AT"

    }

  ]

}

我收到以下错误


冲突时子句与任何主键或唯一约束 [0.065ms] [行数:0] 插入到 (,,) 值中(“已发布的应用程序 1”,“de-DE”、“德语”),(“已发布的应用程序 1”、“de-AT”、“AT”) 发生冲突时 (,) 执行更新集 =。translationsapplication_namelocalevalueapplication_namelocaleapplication_nameexcludedapplication_name



ON 冲突子句与任何主键或唯一约束都不匹配 [0.531ms] [行数:0] 更新集 =“已发布说明3” 其中 = “已发布的应用程序1” [GIN] 2021/08/27 - 11:23:00 |200|841.953μs |127.0.0.1 |开机自检“/应用程序”applicationsdescriptionname


有人知道我做错了什么


ibeautiful
浏览 105回答 1
1回答

偶然的你

解决了问题。X,p一切都是正确的!在我安装了 vscode-sqlite 并检查了数据库之后,我才发现 sqlite 表不像我设计的表问题是自动迁移由于在开发过程中发生了很多变化而产生了无效状态database.AutoMigrate(&models.Application{}, &models.Translation{})我不得不删除 sqlite “gorm.db” 文件并重新启动应用程序
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go