entc/gen: support external ValueScanner for id field (#4487)

This commit is contained in:
Jannik Clausen
2026-02-18 07:41:35 +01:00
committed by GitHub
parent d056659140
commit ab0540611e
30 changed files with 2650 additions and 133 deletions

View File

@@ -50,7 +50,15 @@ func ({{ $receiver }} *{{ $builder }}) sqlSave(ctx context.Context) (_node {{ if
if !ok {
return {{ $zero }}, &ValidationError{Name: "{{ $.ID.Name }}", err: errors.New(`{{ $pkg }}: missing "{{ $.Name }}.{{ $.ID.Name }}" for update`)}
}
_spec.Node.ID.Value = id
{{- if $.ID.HasValueScanner }}
vv, err := {{ $.ID.ValueFunc }}(id)
if err != nil {
return {{ $zero }}, err
}
_spec.Node.ID.Value = vv
{{- else }}
_spec.Node.ID.Value = id
{{- end }}
if fields := {{ $receiver }}.fields; len(fields) > 0 {
_spec.Node.Columns = make([]string, 0, len(fields))
_spec.Node.Columns = append(_spec.Node.Columns, {{ $.Package }}.{{ $.ID.Constant }})