SpectatorNan / gorm-zero

go zero gorm extension / Integrated processing of db model and Redis cache
MIT License
238 stars 39 forks source link

请问template的1.7.0是否还不可用? #93

Closed space-water-bear closed 2 months ago

space-water-bear commented 2 months ago

go.mod => github.com/SpectatorNan/gorm-zero v1.5.0 goctl => 1.7.0 template => 1.7.0

使用了goctl model 生成了以下内容

func (m *defaultGameServiceModel) BatchInsert(ctx context.Context, tx *gorm.DB, news []GameService) error {

    err := m.ExecNoCacheCtx(ctx, func(conn *gorm.DB) error {
        db := conn
        if tx != nil {
            db = tx
        } 
        return db.Create(&news).Error
    })
    return err
}

其中ExecNoCacheCtx没有找到该方法

如果是我的操作有问题请指出来,谢谢🙏

SpectatorNan commented 2 months ago

不带缓存的模板有问题 稍等更新

SpectatorNan commented 2 months ago

go.mod => github.com/SpectatorNan/gorm-zero v1.5.0 goctl => 1.7.0 template => 1.7.0

使用了goctl model 生成了以下内容

func (m *defaultGameServiceModel) BatchInsert(ctx context.Context, tx *gorm.DB, news []GameService) error {

  err := m.ExecNoCacheCtx(ctx, func(conn *gorm.DB) error {
      db := conn
      if tx != nil {
          db = tx
      } 
      return db.Create(&news).Error
  })
  return err
}

其中ExecNoCacheCtx没有找到该方法

如果是我的操作有问题请指出来,谢谢🙏

新模板文件已更新

space-water-bear commented 2 months ago

ok,这个问题解决了,但是又发现新的问题,当字段允许为空时,没有import "database/sql"

SpectatorNan commented 2 months ago

两种解决方案: 1. release 页面有提供gorm专用版本goctl仓库地址 提供了一个useGorm参数会去检查是否需要引入database/sql

goctl model pg datasource -url="postgres://xxx:xxx@localhost:5432/xxx?sslmode=disable" -table=${table} -dir=${dir} -cache=true --style=goZero --home=template -useGorm=true

2. 也可以自行修改模板在任意一个语句中使用nameArgdocs 确保database/sql百分百被使用 image 移除import中的判断条件