我在 Java 上運行這個 PostgreSQL 查詢,它拋出一個錯誤“錯誤:語法錯誤在或接近“:”。但是當我直接運行時,查詢正在 Postgresql 上作業。我在想 Array[]::integer[ ] 是造成問題的原因。有人知道嗎?
String query = "WITH RECURSIVE tree AS ( SELECT id, ARRAY[]::integer[] AS ancestors \n"
" FROM regions \n"
" WHERE parent_id IS NULL\n"
" UNION ALL \n"
" SELECT soato.id, tree.ancestors || regions.parent_id \n"
" FROM regions, tree \n"
" WHERE regions.parent_id = tree.id \n"
") \n"
" SELECT d.id FROM department d \n"
" WHERE d.region_id IN (select id from tree where 1703 = ANY(tree.ancestors))";
Query q = entityManager.createNativeQuery(query);
q.getResultList();
uj5u.com熱心網友回復:
使用顯式轉換來避免隱式 PostgreSQL 選項 :: 進行轉換。
ARRAY[CAST(NULL AS INTEGER)] AS ancestors
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/388200.html
標籤:爪哇 春天 PostgreSQL的
上一篇:Postgresql-選擇帶有聚合決策列的查詢作為json
下一篇:與psycopg2并發更新
