Я выполняю собственный запрос на jpa весенней загрузки с Postgresql / PostGIS.
Запрос на postgresql работает нормально:
WITH data AS (SELECT '{ "type": "Point", "coordinates": [102.0, 0.5]
}'::jsonb AS fc)
UPDATE dopigp.disciplinare_aree SET area_da_validare=(
SELECT
ST_Union(ST_AsText(ST_GeomFromGeoJSON(feat->>'geometry'))) AS geom
FROM (
SELECT
CASE
WHEN fc ? 'features' THEN jsonb_array_elements(fc->'features')
WHEN fc ? 'geometry' THEN (fc)
ELSE jsonb_build_object('geometry', fc)
END
AS feat
FROM data
) AS f
) WHERE id_disciplinare=251
В Spring Boot выдают ошибку: Смешивание? параметры и другие формы, такие как? 1, не поддерживаются
@Transactional
@Modifying
@Query(value = "WITH data AS (SELECT (?2)\\:\\:jsonb AS fc)\n" +
"UPDATE dopigp.disciplinare_aree SET area_da_validare=(\n" +
"SELECT\n" +
" ST_Union(ST_AsText(ST_GeomFromGeoJSON(feat->>'geometry'))) AS geom\n" +
"FROM (\n" +
" SELECT \n" +
" CASE \n" +
" WHEN fc ? 'features' THEN jsonb_array_elements(fc->'features')\n" +
" WHEN fc ? 'geometry' THEN (fc)\n" +
" ELSE jsonb_build_object('geometry', fc)\n" +
" END \n" +
" AS feat\n" +
" FROM data\n" +
") AS f\n" +
") WHERE id_disciplinare=(?1) \n",
nativeQuery = true)
void upload(Integer idDisciplinare, String geoJSON);