¿Cómo escapar del signo de interrogación (?) Con Spring JpaRepository
Postgres define Operadores jsonb adicionales como?|
.
Sin embargo, usando el generador de consultas Spring JpaRepository, el carácter de interrogación siempre se considera como un parámetro, y no puedo entender cómo escapar de él (excepto dentro de una cadena de comillas simple, pero la consulta no es válida).
Ejemplo
@Query(value = "SELECT * FROM public.user u WHERE u.authorities ?| array['ROLE_1', 'ROLE_2']", nativeQuery = true)
Error
java.lang.IllegalArgumentException: Unable to resolve given parameter name [1] to QueryParameter reference
at org.hibernate.query.internal.QueryParameterBindingsImpl.resolveQueryParameter(QueryParameterBindingsImpl.java:520)
at org.hibernate.query.internal.QueryParameterBindingsImpl.getQueryParameterListBinding(QueryParameterBindingsImpl.java:498)
at org.hibernate.query.internal.AbstractProducedQuery.setParameterList(AbstractProducedQuery.java:560)
Hay una manera de escapar de él, o una solución diferente para poder utilizar estos operadores nativos de postgres que contienen?
personaje
¿Intentando escapar con esto? o \? no funciona actualmente.
Nota: También intenté usar una función de dialecto personalizada, pero termina con el mismo problema.
Bibliotecas:
hibernate 5.2.16 hibernate-jpa 2.1 spring-data-jpa 2.0.6.RELEASEpostgresql 42.2.2¡Gracias por sus respuestas chicos