mirror of
https://github.com/ent/ent.git
synced 2026-05-24 09:31:56 +03:00
entc/gen: change neighbors predicate to use sqlgraph
Summary: Pull Request resolved: https://github.com/facebookincubator/ent/pull/204 Reviewed By: alexsn Differential Revision: D18726911 fbshipit-source-id: 6fe850bb0c0613c3f1c94e8bbcf3f0684dded9a6
This commit is contained in:
committed by
Facebook Github Bot
parent
5fe9fcdc1b
commit
f7ce61fc3c
@@ -62,31 +62,18 @@ in the LICENSE file in the root directory of this source tree.
|
||||
{{ define "dialect/sql/predicate/edge/has" -}}
|
||||
{{- $e := $.Scope.Edge -}}
|
||||
func(s *sql.Selector) {
|
||||
{{- if $e.M2M }}
|
||||
t1 := s.Table()
|
||||
builder := sql.Dialect(s.Dialect())
|
||||
s.Where(
|
||||
sql.In(
|
||||
t1.C({{ $.ID.Constant }}),
|
||||
builder.Select({{ $e.PKConstant }}[{{ if $e.IsInverse }}1{{ else }}0{{ end }}]).
|
||||
From(builder.Table({{ $e.TableConstant }})),
|
||||
),
|
||||
)
|
||||
{{- else if or $e.M2O (and $e.O2O $e.IsInverse) }}{{/* M2O || (O2O with inverse edge) */}}
|
||||
t1 := s.Table()
|
||||
s.Where(sql.NotNull(t1.C({{ $e.ColumnConstant }})))
|
||||
{{- else }}{{/* O2M || (O2O with assoc edge) */}}
|
||||
t1 := s.Table()
|
||||
builder := sql.Dialect(s.Dialect())
|
||||
s.Where(
|
||||
sql.In(
|
||||
t1.C({{ $.ID.Constant }}),
|
||||
builder.Select({{ $e.ColumnConstant }}).
|
||||
From(builder.Table({{ $e.TableConstant }})).
|
||||
Where(sql.NotNull({{ $e.ColumnConstant }})),
|
||||
),
|
||||
)
|
||||
{{- end }}
|
||||
step := sql.NewStep(
|
||||
sql.From(Table, {{ $.ID.Constant }}),
|
||||
sql.To({{ $e.TableConstant }}, {{ $.ID.Constant }}),
|
||||
sql.Edge(sql.{{ $e.Rel.Type }}, {{ $e.IsInverse }}, {{ $e.TableConstant }},
|
||||
{{- if $e.M2M -}}
|
||||
{{ $e.PKConstant }}...
|
||||
{{- else -}}
|
||||
{{ $e.ColumnConstant }}
|
||||
{{- end -}}
|
||||
),
|
||||
)
|
||||
sql.HasNeighbors(s, step)
|
||||
}
|
||||
{{- end }}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user