github.com/Ali-iotechsys/sqlboiler/v4@v4.0.0-20221208124957-6aec9a5f1f71/templates/main/06_relationship_to_many.go.tpl (about) 1 {{- if or .Table.IsJoinTable .Table.IsView -}} 2 {{- else -}} 3 {{- range $rel := .Table.ToManyRelationships -}} 4 {{- $ltable := $.Aliases.Table $rel.Table -}} 5 {{- $ftable := $.Aliases.Table $rel.ForeignTable -}} 6 {{- $relAlias := $.Aliases.ManyRelationship $rel.ForeignTable $rel.Name $rel.JoinTable $rel.JoinLocalFKeyName -}} 7 {{- $schemaForeignTable := .ForeignTable | $.SchemaTable -}} 8 {{- $canSoftDelete := (getTable $.Tables .ForeignTable).CanSoftDelete $.AutoColumns.Deleted}} 9 // {{$relAlias.Local}} retrieves all the {{.ForeignTable | singular}}'s {{$ftable.UpPlural}} with an executor 10 {{- if not (eq $relAlias.Local $ftable.UpPlural)}} via {{$rel.ForeignColumn}} column{{- end}}. 11 func (o *{{$ltable.UpSingular}}) {{$relAlias.Local}}(mods ...qm.QueryMod) {{$ftable.DownSingular}}Query { 12 var queryMods []qm.QueryMod 13 if len(mods) != 0 { 14 queryMods = append(queryMods, mods...) 15 } 16 17 {{if $rel.ToJoinTable -}} 18 queryMods = append(queryMods, 19 {{$schemaJoinTable := $rel.JoinTable | $.SchemaTable -}} 20 qm.InnerJoin("{{$schemaJoinTable}} on {{$schemaForeignTable}}.{{$rel.ForeignColumn | $.Quotes}} = {{$schemaJoinTable}}.{{$rel.JoinForeignColumn | $.Quotes}}"), 21 qm.Where("{{$schemaJoinTable}}.{{$rel.JoinLocalColumn | $.Quotes}}=?", o.{{$ltable.Column $rel.Column}}), 22 ) 23 {{else -}} 24 queryMods = append(queryMods, 25 qm.Where("{{$schemaForeignTable}}.{{$rel.ForeignColumn | $.Quotes}}=?", o.{{$ltable.Column $rel.Column}}), 26 ) 27 {{end}} 28 29 return {{$ftable.UpPlural}}(queryMods...) 30 } 31 32 {{end -}}{{- /* range relationships */ -}} 33 {{- end -}}{{- /* if isJoinTable */ -}}