2017-03-15 25 views
0

Grailsアプリケーションからpostgres ltree型で格納されたマテリアライズドパスに対してクエリを実行しようとしています。残念ながら、私のクエリは "?"その最初の疑問符をエスケープする必要があるとエラーがスローされるパラメータエスケープ? hibernate/gormのSQL制限内の疑問符(疑問符)

sqlRestriction("materialized_path ? (SELECT ARRAY(SELECT CAST(CAST(subpath(?,0,generate_series) AS text) ||'.*{1}' AS lquery) FROM generate_series(1,nlevel(CAST(? AS lquery)))))" 
       ,[vertex.materializedPath,vertex.materializedPath]) 

としてGORMによって捕獲されているオペレータは

org.postgresql.util.PSQLException: No value specified for parameter 4. 
at org.postgresql.core.v3.SimpleParameterList.checkAllParametersSet(SimpleParameterList.java:246) 
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:272) 
at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:430) 
at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:356) 
at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:168) 
at org.postgresql.jdbc.PgPreparedStatement.executeQuery(PgPreparedStatement.java:116) 
at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:70) 

答えて

0

は少しの実験でそれを自分自身を発見されました。それはちょうど二重疑問符を取る。だから、

"materialized_path ? (SELECT ARRAY(... 

はなり

"materialized_path ?? (SELECT ARRAY(