You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ntool-biz/zero/template/1.4.3/model/insert.tpl

24 lines
1.2 KiB
Smarty

2 years ago
func (m *default{{.upperStartCamelObject}}Model) Insert(ctx context.Context, tx *gorm.DB, data *{{.upperStartCamelObject}}) error {
{{if .withCache}}{{.keys}}
err := m.ExecCtx(ctx, func(conn *gorm.DB) error {
return gormx.WithTx(ctx, conn, tx).Create(&data).Error
}, m.getCacheKeys(data)...){{else}}err:=gormx.WithTx(ctx, m.DB, tx).Create(&data).Error{{end}}
return err
}
func (m *default{{.upperStartCamelObject}}Model) InsertBatch(ctx context.Context, tx *gorm.DB, data []{{.upperStartCamelObject}}, batchSize int) error {
{{if .withCache}}
err := m.ExecCtx(ctx, func(conn *gorm.DB) error {
return gormx.WithTx(ctx, conn, tx).CreateInBatches(data, batchSize).Error
}){{else}}err:=gormx.WithTx(ctx, m.DB, tx).CreateInBatches(data, batchSize).Error{{end}}
return err
}
func (m *default{{.upperStartCamelObject}}Model) Upsert(ctx context.Context, tx *gorm.DB, data *{{.upperStartCamelObject}}) error {
{{if .withCache}}{{.keys}}
err := m.ExecCtx(ctx, func(conn *gorm.DB) error {
return gormx.WithTx(ctx, conn, tx).Clauses(gormx.BuildUpsertOnConflict(nil, nil, nil)).Create(&data).Error
}, m.getCacheKeys(data)...){{else}}err:=gormx.WithTx(ctx, m.DB, tx).Clauses(gormx.BuildUpsertOnConflict(nil, nil, nil)).Create(&data).Error{{end}}
return err
}