by Guest » 07 Jan 2025, 04:37
Ich habe dies am Ende meiner SQL-Abfrage:
Code: Select all
ORDER BY
CASE
WHEN :sortField = 'creationDate' THEN update_.creation_date
ELSE update_.default_time_field
END,
CASE WHEN :sortDirection = 'DESC' THEN DESC END;
Dies führt jedoch zu einem Kompilierungsfehler (das „DESC“ bezieht sich auf das DESC ganz am Ende. Nicht auf die Zeichenfolgen davor):
Das ist in Ordnung, aber es fällt mir schwer, es zu umgehen. SQL lässt mich einfach nicht zu.
Ich verwende Postgres 11. Ich injiziere Parameter mit Java-Code (Micronaut-Data. Nein, ich kann Pageable nicht verwenden).< /p>
So sieht das Obige aus, wenn ich tatsächlich die Werte für die Variablen eingebe:
Code: Select all
ORDER BY
CASE
WHEN 'creationDate' = 'creationDate' THEN update_.creation_date
ELSE update_.default_time_field
END,
CASE WHEN 'DESC' = 'DESC' THEN DESC END;
Ich habe dies am Ende meiner SQL-Abfrage:
[code]ORDER BY
CASE
WHEN :sortField = 'creationDate' THEN update_.creation_date
ELSE update_.default_time_field
END,
CASE WHEN :sortDirection = 'DESC' THEN DESC END;
[/code]
Dies führt jedoch zu einem Kompilierungsfehler (das „DESC“ bezieht sich auf das DESC ganz am Ende. Nicht auf die Zeichenfolgen davor):
[code] expected, got 'DESC'
[/code]
Das ist in Ordnung, aber es fällt mir schwer, es zu umgehen. SQL lässt mich einfach nicht zu.
Ich verwende Postgres 11. Ich injiziere Parameter mit Java-Code (Micronaut-Data. Nein, ich kann Pageable nicht verwenden).< /p>
So sieht das Obige aus, wenn ich tatsächlich die Werte für die Variablen eingebe:
[code]ORDER BY
CASE
WHEN 'creationDate' = 'creationDate' THEN update_.creation_date
ELSE update_.default_time_field
END,
CASE WHEN 'DESC' = 'DESC' THEN DESC END;
[/code]