org.springframework.dao.DataIntegrityViolationException:
### Error querying database. Cause: org.postgresql.util.PSQLException: 未设定参数值 3 的内容。
### The error may exist in file [D:\code\cloudservice-backend-java\telehealth-server\target\classes\mapper\modules\diagnosisReqs\DiagnosisReqsMapper.xml]
### The error may involve defaultParameterMap
### The error occurred while setting parameters
### SQL: SELECT COUNT(*) FROM (select d.* from "DiagnosisReqs" d LEFT JOIN "Studies" s on d.study_id=s.internal_id LEFT JOIN "Teams" t on d.to_team_id=t."id" WHERE d.from_hospital_id = ? and consultation_parts::jsonb @? ? ORDER BY d.created_time desc) TOTAL
### Cause: org.postgresql.util.PSQLException: 未设定参数值 3 的内容。
; 未设定参数值 3 的内容。; nested exception is org.postgresql.util.PSQLException: 未设定参数值 3 的内容。
只设置了两个参数 但是显示三个 具体如下
<if test="reqVO.consultation_parts_sql != null and reqVO.consultation_parts_sql != ''">
and consultation_parts::jsonb @? #{reqVO.consultation_parts_sql}
</if>
SELECT *
FROM "public"."DiagnosisReqs"
WHERE consultation_parts::jsonb @? '$[*] ? (@.part_name like_regex ".*颅脑.*" flag "i")';
语句中用到了jsonpath 如何避免 MyBatis 将 JSONPath 中的 ? 误认为占位符
实际上换了思路 也不算完全解决 使用
part->>'part_name' LIKE '%颅脑平扫%';
避开了jsonpath语法中的?