TRIM in Query

TM69

Bekanntes Mitglied
Bezugnehmend auf https://www.java-forum.org/thema/cast-fehler-spring-data-exists-boolean.199607/#post-1327993

Ich habe eine Query
Java:
@Query("SELECT (count(u) > 0) FROM User AS u WHERE lower(u.email) LIKE lower(CONCAT('%',:email,'%'))")

ich habe auch schon
Code:
@Query("SELECT (count(u) > 0) FROM User AS u WHERE lower(u.email) LIKE lower(TRIM(CONCAT('%',:email,'%')))")
ausprobiert.

aber im Test schlägt der 2. Test
Code:
// test 2
String testEmail2 = " email@email.com ";
assertTrue(userRepository.existsByEmailRegEx(testEmail2), "Test 2 with '" + testEmail2 + "' not exists");

schlägt fehl.

Diesbezüglich auch noch eine andere Frage:
TRIM stammt aus der MySQL Reference. Soweit ich es aber sehe, gibt es in Spring Data JPQL kein Trim. Wie könnte ich es schaffen, dass, wenn ich später mal die Datenbank wechseln würde z.B. auf Postgres (kenne mich selbst nicht mit Postgres aus). Wie könnte ich dieses Ziel erreichen? Sprich ohne die Query erneut anzufassen
 
Zuletzt bearbeitet:
Dein TRIM macht genau gar nichts und ist komplett überflüssig so.

Den der zu trimmende String enthält die % am ANfang und Ende - nix zu trimmen also.

Vertausch mal CONCAT & TRIM
 

Zurück
Oben