Files
his/openhis-server-new/openhis-domain/src/main/resources/mapper/administration/EncounterDiagnosisMapper.xml
华佗 a3378b7fbf fix: EncounterDiagnosisMapper selectOne() LIMIT 1 防重复数据报错
根因:getEncounterDiagnosisByEncounterConDefId 使用 selectOne() 查询,
但 SQL 可能返回多条(同就诊同诊断定义多条记录),导致 MyBatis 抛出
'Expected one result but found 2' 异常。

修复:SQL 增加 LIMIT 1,确保最多返回一条。
2026-05-29 15:04:03 +08:00

33 lines
1.1 KiB
XML
Executable File

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.openhis.administration.mapper.EncounterDiagnosisMapper">
<delete id="deleteByEncounterId">
DELETE
FROM adm_encounter_diagnosis
WHERE encounter_id = #{encounterId}
AND tcm_flag = 0
</delete>
<delete id="deleteTcmByEncounterId">
DELETE
FROM adm_encounter_diagnosis
WHERE encounter_id = #{encounterId}
AND tcm_flag = 0
</delete>
<select id="getEncounterDiagnosisByEncounterConDefId"
resultType="com.openhis.administration.domain.EncounterDiagnosis">
SELECT *
FROM adm_encounter_diagnosis T1
INNER JOIN cli_condition T2 ON T1.condition_id = T2.id
WHERE T1.encounter_id = #{encounterId}
AND T2.definition_id = #{conditionDefId}
AND T1.delete_flag = '0'
AND T2.delete_flag = '0'
AND T1.tenant_id = #{tenantId}
LIMIT 1
</select>
</mapper>