Skip to content

Commit 9026932

Browse files
authored
fix: fix an issue where related fields could not be updated during a transaction. (#1239)
* chore(expect): regenerate `dal_test` * fix(relation-tx): fix association bug(1070) * Revert "fix(relation-tx): fix association bug(1070)" This reverts commit 08cab39. * style(*): fix format
1 parent 3960277 commit 9026932

26 files changed

+2689
-26
lines changed

internal/template/struct.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,13 +107,16 @@ func ({{.S}} *{{.QueryStructName}}) updateTableName(table string) *{{.QueryStruc
107107

108108
cloneMethod = `
109109
func ({{.S}} {{.QueryStructName}}) clone(db *gorm.DB) {{.QueryStructName}} {
110-
{{.S}}.{{.QueryStructName}}Do.ReplaceConnPool(db.Statement.ConnPool)
110+
{{.S}}.{{.QueryStructName}}Do.ReplaceConnPool(db.Statement.ConnPool){{range .Fields }}{{if .IsRelation}}
111+
{{$.S}}.{{.Relation.Name}}.db = db.Session(&gorm.Session{Initialized: true})
112+
{{$.S}}.{{.Relation.Name}}.db.Statement.ConnPool = db.Statement.ConnPool{{end}}{{end}}
111113
return {{.S}}
112114
}
113115
`
114116
replaceMethod = `
115117
func ({{.S}} {{.QueryStructName}}) replaceDB(db *gorm.DB) {{.QueryStructName}} {
116-
{{.S}}.{{.QueryStructName}}Do.ReplaceDB(db)
118+
{{.S}}.{{.QueryStructName}}Do.ReplaceDB(db){{range .Fields}}{{if .IsRelation}}
119+
{{$.S}}.{{.Relation.Name}}.db = db.Session(&gorm.Session{}){{end}}{{end}}
117120
return {{.S}}
118121
}
119122
`

tests/.expect/dal_7/model/banks.gen.go

Lines changed: 20 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/.expect/dal_7/model/credit_cards.gen.go

Lines changed: 29 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/.expect/dal_7/model/customers.gen.go

Lines changed: 29 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)