type Group struct { gorm.Model CreatedBy uint64 GroupOrders []GroupOrder gorm:"many2many:group_orders;association_jointable_foreignkey:group_id;jointable_foreignkey:group_id;" } type GroupOrder struct { gorm.Model GroupID uint64 OrderID uint64 UserID uint64 Group Group}我正在尝试插入这样的记录newGroup: = &Group{ CreatedBy: newGroupDetails.UserID, GroupOrders: []GroupOrder{ { OrderID: newGroupDetails.OrderID, UserID: newGroupDetails.UserID, }, }, }我正在使用它创建记录。db.Create(newGroup)它在 Group 模型中正确创建记录,但在 GroupOrder 模型中插入时,它在 group_id 列中插入 NULL 值。之后,它会触发一个查询INSERT INTO group_orders (group_id) SELECT ? FROM DUAL WHERE NOT EXISTS (SELECT * FROM group_orders WHERE group_id = ?)[30 30] 1 pkg=mysql然后在 GroupOrder 模型中插入另一条记录,所有字段均为空,但将组 ID 字段添加为先前插入的 group_order_id 值。mysql中的结果数据团购 | id | group_id | order_id | user_id | +----+---------------+----------+---------+ | 30 | 0 | 8764822 | 678972 | | 31 | 30 | NULL | NULL |团体 | id | created_by | +----+------------+ | 18 | 678972 |至少,它应该在 GroupOrder 表的最后一行 group_id 列中插入 18 代替 30。为什么会这样?有人可以解释一下是否有错误。PS:为简洁起见,从两个模型中删除了一些其他列。
- 1 回答
- 0 关注
- 119 浏览
添加回答
举报
0/150
提交
取消