go常见报错解决

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) 正常。   基本上是同一种写法。

  1. 重建项目:尝试清除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" 输入参数格式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值