java - Spring jpa + postgresql:包含运算符'@>'的本机查询不起作用
问题描述
这是我的问题,我尝试通过至少获得所有选项参数的外键过滤表。
所以我的请求在我的数据库管理系统中运行良好,是:
SELECT a.*
FROM agents a
LEFT JOIN competence c ON c.agent_id = a.id
LEFT JOIN competence_type ct ON ct.id = c.competence_type_id
GROUP BY a.id
HAVING array_agg(CAST(ct.code AS TEXT)) @> array['OPTION_1','OPTION_2']
然后使用 Spring 创建我的本机查询:
Query query = em.createNativeQuery(queryString, Agent.class)
并通过以下方式获得结果:
query.getResultList(),
我收到此错误:(我格式化错误以提高可读性)
Syntax error in SQL statement "SELECT A.*
FROM AGENTS A
LEFT JOIN COMPETENCE C ON C.AGENT_ID = A.ID
LEFT JOIN COMPETENCE_TYPE CT ON CT.ID = C.COMPETENCE_TYPE_ID
GROUP BY A.ID
HAVING ARRAY_AGG(CT.CODE:[*]TEXT) @> ARRAY[(?, ?, ?)] LIMIT ?";
expected "(, ., [, ::, AT, FORMAT, *, /, %, +, -, ||, ~, !~, NOT, LIKE, ILIKE, REGEXP, IS, IN, BETWEEN, AND, OR, ORDER, )"
所以我的问题是如何提出这个请求或使用其他运算符使其以相同的方式工作。
谢谢你们
解决方案
推荐阅读
- javascript - 仅在悬停框时如何使 div 跟随鼠标指针?
- mongodb - 为庞大的数据集实现分页,避免在 mongo 上跳过
- python - 错误:无法从“tensorflow.keras.layers.experimental.preprocessing”导入名称“StringLookup”
- sql-server - SQL Server 查询以获取前 10 种产品的出货量、平均值、mtd 和 ytd
- path - Godot:在动画播放器中更改对象的路径
- scala - 尝试从 h2 数据库中检索 json 数据时出错
- r - R - 使用 xml2 读取多个 xml 文件
- node.js - 为什么 API Gateway 没有收到 Lambda 的响应?
- regex - 在非捕获组 RegEx 中捕获电子邮件地址
- javascript - 用数组数据反应三元运算符不起作用?