代码拉取完成,页面将自动刷新
package mysql
import (
"io"
"text/template"
"gitee.com/lipore/plume/db_gorm/gen/code"
"gitee.com/lipore/plume/db_gorm/gen/spec"
)
type deleteMethodData struct {
repositoryMethodData
intOrBoolReturnData
Entity code.Type
Query string
}
var deleteMethodTemplate = `
{{block "repositoryMethod" .}}{{end}}{
entity := &{{typeToCode .Entity}}{}
conn, err := db_gorm.LoadTx(ctx)
if err != nil{
{{- block "errorReturnStmt" .}}{{end -}}
}
var result *gorm.DB
err = conn.Transaction(func(tx *gorm.DB) error {
result = conn{{.Query}}.Delete(&entity)
return result.Error
})
if err != nil {
{{- block "errorReturnStmt" .}}{{end -}}
}
{{- block "returnStmt" .}}{{end}}
}`
func renderDeleteMethod(s spec.MethodSpec, entity code.Type, repository code.Type, operation spec.DeleteOperation, writer io.Writer) error {
tmpl := template.New("delete Method")
tmpl, err := renderRepositoryMethod(tmpl)
if err != nil {
return err
}
tmpl, err = renderReturnStmt(tmpl)
tmpl, err = tmpl.Parse(deleteMethodTemplate)
if err != nil {
return err
}
query, err := renderQueryStmt(s, operation.Query)
if err != nil {
return err
}
tmplData := deleteMethodData{
repositoryMethodData: repositoryMethodData{Receiver: code.Param{Name: "repository", Type: code.PointerType{ContainedType: repository}}, Spec: s},
intOrBoolReturnData: intOrBoolReturnData{
IntReturn: operation.Mode == spec.QueryModeMany,
},
Entity: entity,
Query: query,
}
return tmpl.Execute(writer, tmplData)
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。