1、have not defalut value
数据库可以为null,更改数据库为null可以
2、add
entity 没有字段。
3、add service层或api层没加
问题二:
为什么编译器idea,上面这里爆红。报错。v3.POST("/add", accountInOutApi.Add)。而v4.POST("/add", appUserApi.Add) 正常。 基本上是同一种写法。
-
重建项目:尝试清除IDE缓存并重建项目。在IntelliJ IDEA中,可以通过
File -> Invalidate Caches / Restart...
来完成这个操作。
问题三:"reflect: reflect.Value.SetInt using unaddressable value"
func (d DbServerImp) CreateStatisticsData(ctx context.Context, orderStatistics model.StatisticsData) (int64, error) { err := global.DB.WithContext(ctx).Transaction(func(tx *gorm.DB) error { if err := tx.Create(orderStatistics).Error; err != nil { return err }
中间少了一个&地址。tx.Create(&orderStatistics) 即可
问题四:
报错
{
"code": 500,
"msg": "parsing time \"2024-01-20 16:00:00\" as \"2006-01-02T15:04:05Z07:00\": cannot parse \" 16:00:00\" as \"T\"",
"detail": "parsing time \"2024-01-20 16:00:00\" as \"2006-01-02T15:04:05Z07:00\": cannot parse \" 16:00:00\" as \"T\""
}
解决方案:
前端json输入修改,加T 和Z 如
{
"begin_time": "2024-01-20 16:00:00",-----------这个是错误的传输
"end_time": "2024-01-22T16:00:00Z",-----------这个是正确的传输
"message_push_flag": 1,
"push_mode": 52,
"left_time": 1985783854,
"update_by": "ullamco",
"content": "<p>velit minim esse<p>velit minim essvvvv",
"title": "产分工比",
"push_time": 50
}
同时add和model的结构体都要是 *time.time 如下,指针类型
BeginTime *time.Time `gorm:"begin_time" json:"begin_time"` // 开始时间 EndTime *time.Time `gorm:"end_time" json:"end_time"` // 结束时间
当然,add层的结构体可以是*string类型。转换成功之后,可是还会有其他报错。
{
"code": 500,
"msg": "Error 1292 (22007): Incorrect datetime value: '0000-00-00' for column 'begin_time' at row 1",
"detail": "Error 1292 (22007): Incorrect datetime value: '0000-00-00' for column 'begin_time' at row 1"
}
------
解决方案。entity的结构体里面时间也修改为和add的一样 *string。就可以保存数据库成功。
总结:对于时间的这两种报错方案解决方案就是,要么统一用*string,要么统一用*time.Time
对应的,输入参数json格式,要么统一用 "begin_time": "2024-01-22 16:00:00"格式,要么统一用 "begin_time": "2024-01-22T16:00:00Z" 格式。
建议统一用 *time.Time类型和 "begin_time": "2024-01-22T16:00:00Z" 输入参数格式。