mirror of
https://github.com/ent/ent.git
synced 2026-05-24 09:31:56 +03:00
entc/gen: move eager-loading naming to Go api (#887)
This commit is contained in:
File diff suppressed because one or more lines are too long
@@ -31,7 +31,7 @@ type {{ $builder }} struct {
|
||||
{{- with $.Edges }}
|
||||
// eager-loading edges.
|
||||
{{- range $e := . }}
|
||||
with{{ pascal $e.Name }} *{{ $e.Type.QueryName }}
|
||||
{{ $e.EagerLoadField }} *{{ $e.Type.QueryName }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- /* Additional fields to add to the builder. */}}
|
||||
@@ -276,7 +276,7 @@ func ({{ $receiver }} *{{ $builder }}) Clone() *{{ $builder }} {
|
||||
for _, opt := range opts {
|
||||
opt(query)
|
||||
}
|
||||
{{ $receiver }}.with{{ pascal $e.Name }} = query
|
||||
{{ $receiver }}.{{ $e.EagerLoadField }} = query
|
||||
return {{ $receiver }}
|
||||
}
|
||||
{{- end }}
|
||||
|
||||
@@ -26,14 +26,14 @@ func ({{ $receiver }} *{{ $builder }}) sqlAll(ctx context.Context) ([]*{{ $.Name
|
||||
{{- with $.Edges }}
|
||||
loadedTypes = [{{ len . }}]bool{
|
||||
{{- range $e := . }}
|
||||
{{ $receiver }}.with{{ pascal $e.Name }} != nil,
|
||||
{{ $receiver }}.{{ $e.EagerLoadField }} != nil,
|
||||
{{- end }}
|
||||
}
|
||||
{{- end }}
|
||||
)
|
||||
{{- with $.ForeignKeys }}
|
||||
{{- with $.FKEdges }}
|
||||
if {{ range $i, $e := . }}{{ if gt $i 0 }} || {{ end }}{{ $receiver }}.with{{ pascal $e.Name }} != nil{{ end }} {
|
||||
if {{ range $i, $e := . }}{{ if gt $i 0 }} || {{ end }}{{ $receiver }}.{{ $e.EagerLoadField }} != nil{{ end }} {
|
||||
withFKs = true
|
||||
}
|
||||
{{- end }}
|
||||
@@ -199,7 +199,7 @@ func ({{ $receiver }} *{{ $builder }}) sqlQuery() *sql.Selector {
|
||||
{{ define "dialect/sql/query/eagerloading" }}
|
||||
{{- $e := $.Scope.Edge }}
|
||||
{{- $receiver := $.Scope.Rec }}
|
||||
if query := {{ $receiver }}.with{{ pascal $e.Name }}; query != nil {
|
||||
if query := {{ $receiver }}.{{ $e.EagerLoadField }}; query != nil {
|
||||
{{- if $e.M2M }}
|
||||
fks := make([]driver.Value, 0, len(nodes))
|
||||
ids := make(map[{{ $.ID.Type }}]*{{ $.Name }}, len(nodes))
|
||||
|
||||
@@ -1117,6 +1117,11 @@ func (e Edge) BuilderField() string {
|
||||
return builderField(e.Name)
|
||||
}
|
||||
|
||||
// EagerLoadField returns the struct field (of query builder) for storing the eager-loading info.
|
||||
func (e Edge) EagerLoadField() string {
|
||||
return "with" + pascal(e.Name)
|
||||
}
|
||||
|
||||
// StructField returns the struct member of the edge in the model.
|
||||
func (e Edge) StructField() string {
|
||||
return pascal(e.Name)
|
||||
|
||||
Reference in New Issue
Block a user