Project settings are: Java 8, Hibernate 5.3.1, Oracle 18c
Getting the following error when executing queries with named or ordinal parameters. Happens only if the parameters are inside a function
select * from TABLE_PRIVILEGE a where ( ( json_exists(a.DATA,'$?(@.businessId in :businessId)')) and ( a.DATA."resource" = :resource ) and ( json_exists(a.DATA,'$?(@.actions in :actions)')) )
When trying to set any of the parameters used in the function
Query#setParameter("businessId", value);
an exception is thrown
java.lang.IllegalArgumentException: Could not locate named parameter [businessId], expecting one of [resource]
at org.hibernate.query.internal.ParameterMetadataImpl.getNamedParameterDescriptor(ParameterMetadataImpl.java:218)
at org.hibernate.query.internal.ParameterMetadataImpl.getQueryParameter(ParameterMetadataImpl.java:187)
at org.hibernate.query.internal.QueryParameterBindingsImpl.resolveQueryParameter(QueryParameterBindingsImpl.java:460)
Same if in the native query we are using ordinal parameters
select * from TABLE_PRIVILEGE a where ( ( json_exists(a.DATA,'$?(@.businessId in ?1)')) and ( a.DATA.resource = ?2 ) and ( json_exists(a.DATA,'$?(@.actions in ?3)')) )
java.lang.IllegalArgumentException: Could not locate ordinal parameter [1], expecting one of [2]
at org.hibernate.query.internal.ParameterMetadataImpl.getOrdinalParameterDescriptor(ParameterMetadataImpl.java:143)
at org.hibernate.query.internal.ParameterMetadataImpl.getQueryParameter(ParameterMetadataImpl.java:193)
at org.hibernate.query.internal.AbstractProducedQuery.setParameter(AbstractProducedQuery.java:509)
at org.hibernate.query.internal.NativeQueryImpl.setParameter(NativeQueryImpl.java:608)
at org.hibernate.query.internal.NativeQueryImpl.setParameter(NativeQueryImpl.java:57)