gpt4 book ai didi

go - 为什么 Golang GORM Hook BeforeUpdate,AfterUpdate 不触发?

转载 作者:行者123 更新时间:2023-12-01 22:22:23 38 4
gpt4 key购买 nike

我从 here 尝试过 Golang Gorm Hook ,但在尝试更新表时不触发任何内容 md_transaction 通过型号国防部 ,这是我的golang代码:

package models

import (
"time"
"fmt"
"github.com/jinzhu/gorm"
)

type ModTrans struct {
TRX_ID string `gorm:"primary_key;column:trx_id" json:"TRX_ID"`
TRX_CODE string `gorm:"column:trx_code" json:"TRX_CODE"`
TRX_DATE *time.Time `gorm:"column:trx_date" json:"TRX_DATE"`
TRX_TYPE string `gorm:"column:trx_type" json:"TRX_TYPE"`
TRX_PAY_METHOD int `gorm:"column:trx_pay_method" json:"TRX_PAY_METHOD"`
}

func (t *ModTrans) TableName() string {
return "md_transaction"
}

// Updating data in same transaction
func (t *ModTrans) AfterUpdate(tx *gorm.DB) (err error) {
fmt.Println(">>>> it's work and firing....")
return
}

基于文档

If you have defined specified methods for a model, it will be called automatically



我是钩子(Hook) golang GORM 的新手,为什么钩子(Hook)不能很好地触发?还有其他例子吗?我试过在谷歌上搜索没有找到,可能我的关键字搜索不太对。

最佳答案

使用运算符 & 将方法更改为指针时效果很好:

err = DB.Model(&models.ModTrans{}).Where(&models.ModTrans{ TRX_CODE: pOrderCode }).
Updates(&models.ModTrans{
TRX_PAY_METHOD: 1,
TRX_STATUS: 2,
}).Error

关于go - 为什么 Golang GORM Hook BeforeUpdate,AfterUpdate 不触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62436224/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com