다중 역할 계정의 좌측메뉴 조회 SQL 오류 수정 (SFR-001 후속)
권한 신청·승인 워크플로(N:신설=추가부여)로 사용자가 AUTHOR_CODE를 2개 이상 갖게 되면, 레거시 eGov 표준 메뉴 쿼리(selectMainMenuHead/Left/LastMenuNo(Cnt))의 "= (서브쿼리)"가 다중 행을 반환해 Subquery returns more than 1 row로 500 오류가 발생했다(2FA/OTP 등록 직후 /mnt/main.do 진입 시 재현). 서브쿼리를 IN으로, 상위 SELECT에 DISTINCT를 추가해 다중 역할을 지원하도록 수정. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
parent
462e55bcd5
commit
1288fc6396
@ -8,8 +8,8 @@
|
|||||||
<typeAlias alias="comDefaultVO" type="egovframework.com.cmm.ComDefaultVO"/>
|
<typeAlias alias="comDefaultVO" type="egovframework.com.cmm.ComDefaultVO"/>
|
||||||
|
|
||||||
<select id="menuManageDAO.selectMainMenuHead" parameterClass="MenuManageVO" resultClass="egovMap">
|
<select id="menuManageDAO.selectMainMenuHead" parameterClass="MenuManageVO" resultClass="egovMap">
|
||||||
<![CDATA[
|
<![CDATA[
|
||||||
SELECT
|
SELECT DISTINCT
|
||||||
B.MENU_NO AS menuNo
|
B.MENU_NO AS menuNo
|
||||||
, B.MENU_ORDR AS menuOrdr
|
, B.MENU_ORDR AS menuOrdr
|
||||||
, B.MENU_NM AS menuNm
|
, B.MENU_NM AS menuNm
|
||||||
@ -19,33 +19,33 @@
|
|||||||
, B.RELATE_IMAGE_NM AS relateImageNm
|
, B.RELATE_IMAGE_NM AS relateImageNm
|
||||||
, B.PROGRM_FILE_NM AS progrmFileNm
|
, B.PROGRM_FILE_NM AS progrmFileNm
|
||||||
, (SELECT C.URL FROM COMTNPROGRMLIST C WHERE B.PROGRM_FILE_NM = C.PROGRM_FILE_NM) AS chkURL
|
, (SELECT C.URL FROM COMTNPROGRMLIST C WHERE B.PROGRM_FILE_NM = C.PROGRM_FILE_NM) AS chkURL
|
||||||
FROM COMTNMENUCREATDTLS A, COMTNMENUINFO B
|
FROM COMTNMENUCREATDTLS A, COMTNMENUINFO B
|
||||||
WHERE B.Menu_NO > 0
|
WHERE B.Menu_NO > 0
|
||||||
AND B.UPPER_MENU_NO = #menuNo#
|
AND B.UPPER_MENU_NO = #menuNo#
|
||||||
AND A.MENU_NO = B.MENU_NO
|
AND A.MENU_NO = B.MENU_NO
|
||||||
AND A.AUTHOR_CODE = (SELECT C.AUTHOR_CODE from COMTNEMPLYRSCRTYESTBS C
|
AND A.AUTHOR_CODE IN (SELECT C.AUTHOR_CODE from COMTNEMPLYRSCRTYESTBS C
|
||||||
WHERE C.SCRTY_DTRMN_TRGET_ID = #tmpUniqId#)
|
WHERE C.SCRTY_DTRMN_TRGET_ID = #tmpUniqId#)
|
||||||
ORDER BY MENU_ORDR
|
ORDER BY MENU_ORDR
|
||||||
]]>
|
]]>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="menuManageDAO.selectMainMenuLeft" parameterClass="MenuManageVO" resultClass="egovMap">
|
<select id="menuManageDAO.selectMainMenuLeft" parameterClass="MenuManageVO" resultClass="egovMap">
|
||||||
/* menuManageDAO.selectMainMenuLeft */
|
/* menuManageDAO.selectMainMenuLeft */
|
||||||
<![CDATA[
|
<![CDATA[
|
||||||
SELECT
|
SELECT DISTINCT
|
||||||
B.MENU_NO AS menuNo
|
B.MENU_NO AS menuNo
|
||||||
, B.MENU_ORDR AS menuOrdr
|
, B.MENU_ORDR AS menuOrdr
|
||||||
, B.MENU_NM AS menuNm
|
, B.MENU_NM AS menuNm
|
||||||
, B.UPPER_MENU_NO AS upperMenuId
|
, B.UPPER_MENU_NO AS upperMenuId
|
||||||
, B.RELATE_IMAGE_PATH AS relateImagePath
|
, B.RELATE_IMAGE_PATH AS relateImagePath
|
||||||
, B.RELATE_IMAGE_NM AS relateImageNm
|
, B.RELATE_IMAGE_NM AS relateImageNm
|
||||||
, (SELECT C.URL FROM COMTNPROGRMLIST C WHERE B.PROGRM_FILE_NM = C.PROGRM_FILE_NM) AS chkURL
|
, (SELECT C.URL FROM COMTNPROGRMLIST C WHERE B.PROGRM_FILE_NM = C.PROGRM_FILE_NM) AS chkURL
|
||||||
FROM COMTNMENUCREATDTLS A, COMTNMENUINFO B
|
FROM COMTNMENUCREATDTLS A, COMTNMENUINFO B
|
||||||
WHERE A.MENU_NO = B.MENU_NO
|
WHERE A.MENU_NO = B.MENU_NO
|
||||||
AND A.AUTHOR_CODE = (SELECT AUTHOR_CODE from COMTNEMPLYRSCRTYESTBS
|
AND A.AUTHOR_CODE IN (SELECT AUTHOR_CODE from COMTNEMPLYRSCRTYESTBS
|
||||||
WHERE SCRTY_DTRMN_TRGET_ID = #tmpUniqId#)
|
WHERE SCRTY_DTRMN_TRGET_ID = #tmpUniqId#)
|
||||||
ORDER BY B.MENU_ORDR
|
ORDER BY B.MENU_ORDR
|
||||||
]]>
|
]]>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="menuManageDAO.selectLastMenuURL" parameterClass="MenuManageVO" resultClass="String">
|
<select id="menuManageDAO.selectLastMenuURL" parameterClass="MenuManageVO" resultClass="String">
|
||||||
@ -67,24 +67,24 @@
|
|||||||
(select MIN(MENU_ORDR)
|
(select MIN(MENU_ORDR)
|
||||||
from COMTNMENUCREATDTLS A, COMTNMENUINFO B
|
from COMTNMENUCREATDTLS A, COMTNMENUINFO B
|
||||||
where A.MENU_NO = B.MENU_NO
|
where A.MENU_NO = B.MENU_NO
|
||||||
AND A.AUTHOR_CODE = (SELECT AUTHOR_CODE from COMTNEMPLYRSCRTYESTBS
|
AND A.AUTHOR_CODE IN (SELECT AUTHOR_CODE from COMTNEMPLYRSCRTYESTBS
|
||||||
WHERE SCRTY_DTRMN_TRGET_ID = #tempValue#)
|
WHERE SCRTY_DTRMN_TRGET_ID = #tempValue#)
|
||||||
AND B.UPPER_MENU_NO = #menuNo#)
|
AND B.UPPER_MENU_NO = #menuNo#)
|
||||||
]]>
|
]]>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="menuManageDAO.selectLastMenuNoCnt" parameterClass="MenuManageVO" resultClass="int">
|
<select id="menuManageDAO.selectLastMenuNoCnt" parameterClass="MenuManageVO" resultClass="int">
|
||||||
<![CDATA[
|
<![CDATA[
|
||||||
select count(MENU_NO)
|
select count(MENU_NO)
|
||||||
from COMTNMENUINFO
|
from COMTNMENUINFO
|
||||||
where UPPER_MENU_NO = #menuNo#
|
where UPPER_MENU_NO = #menuNo#
|
||||||
and MENU_ORDR =
|
and MENU_ORDR =
|
||||||
(select MIN(MENU_ORDR)
|
(select MIN(MENU_ORDR)
|
||||||
from COMTNMENUCREATDTLS A, COMTNMENUINFO B
|
from COMTNMENUCREATDTLS A, COMTNMENUINFO B
|
||||||
where A.MENU_NO = B.MENU_NO
|
where A.MENU_NO = B.MENU_NO
|
||||||
AND A.AUTHOR_CODE = (SELECT AUTHOR_CODE from COMTNEMPLYRSCRTYESTBS
|
AND A.AUTHOR_CODE IN (SELECT AUTHOR_CODE from COMTNEMPLYRSCRTYESTBS
|
||||||
WHERE SCRTY_DTRMN_TRGET_ID = #tempValue#)
|
WHERE SCRTY_DTRMN_TRGET_ID = #tempValue#)
|
||||||
AND B.UPPER_MENU_NO = #menuNo#)
|
AND B.UPPER_MENU_NO = #menuNo#)
|
||||||
]]>
|
]]>
|
||||||
</select>
|
</select>
|
||||||
</sqlMap>
|
</sqlMap>
|
||||||
@ -8,8 +8,8 @@
|
|||||||
<typeAlias alias="comDefaultVO" type="egovframework.com.cmm.ComDefaultVO"/>
|
<typeAlias alias="comDefaultVO" type="egovframework.com.cmm.ComDefaultVO"/>
|
||||||
|
|
||||||
<select id="menuManageDAO.selectMainMenuHead" parameterClass="MenuManageVO" resultClass="egovMap">
|
<select id="menuManageDAO.selectMainMenuHead" parameterClass="MenuManageVO" resultClass="egovMap">
|
||||||
<![CDATA[
|
<![CDATA[
|
||||||
SELECT
|
SELECT DISTINCT
|
||||||
B.MENU_NO AS "menuNo"
|
B.MENU_NO AS "menuNo"
|
||||||
, B.MENU_ORDR AS "menuOrdr"
|
, B.MENU_ORDR AS "menuOrdr"
|
||||||
, B.MENU_NM AS "menuNm"
|
, B.MENU_NM AS "menuNm"
|
||||||
@ -19,32 +19,32 @@
|
|||||||
, B.RELATE_IMAGE_NM AS "relateImageNm"
|
, B.RELATE_IMAGE_NM AS "relateImageNm"
|
||||||
, B.PROGRM_FILE_NM AS "progrmFileNm"
|
, B.PROGRM_FILE_NM AS "progrmFileNm"
|
||||||
, (SELECT C.URL FROM COMTNPROGRMLIST C WHERE B.PROGRM_FILE_NM = C.PROGRM_FILE_NM) AS "chkURL"
|
, (SELECT C.URL FROM COMTNPROGRMLIST C WHERE B.PROGRM_FILE_NM = C.PROGRM_FILE_NM) AS "chkURL"
|
||||||
FROM COMTNMENUCREATDTLS A, COMTNMENUINFO B
|
FROM COMTNMENUCREATDTLS A, COMTNMENUINFO B
|
||||||
WHERE B.Menu_NO > 0
|
WHERE B.Menu_NO > 0
|
||||||
AND B.UPPER_MENU_NO = #menuNo#
|
AND B.UPPER_MENU_NO = #menuNo#
|
||||||
AND A.MENU_NO = B.MENU_NO
|
AND A.MENU_NO = B.MENU_NO
|
||||||
AND A.AUTHOR_CODE = (SELECT C.AUTHOR_CODE from COMTNEMPLYRSCRTYESTBS C
|
AND A.AUTHOR_CODE IN (SELECT C.AUTHOR_CODE from COMTNEMPLYRSCRTYESTBS C
|
||||||
WHERE C.SCRTY_DTRMN_TRGET_ID = #tmpUniqId#)
|
WHERE C.SCRTY_DTRMN_TRGET_ID = #tmpUniqId#)
|
||||||
ORDER BY MENU_ORDR
|
ORDER BY MENU_ORDR
|
||||||
]]>
|
]]>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="menuManageDAO.selectMainMenuLeft" parameterClass="MenuManageVO" resultClass="egovMap">
|
<select id="menuManageDAO.selectMainMenuLeft" parameterClass="MenuManageVO" resultClass="egovMap">
|
||||||
<![CDATA[
|
<![CDATA[
|
||||||
SELECT
|
SELECT DISTINCT
|
||||||
B.MENU_NO AS "menuNo"
|
B.MENU_NO AS "menuNo"
|
||||||
, B.MENU_ORDR AS "menuOrdr"
|
, B.MENU_ORDR AS "menuOrdr"
|
||||||
, B.MENU_NM AS "menuNm"
|
, B.MENU_NM AS "menuNm"
|
||||||
, B.UPPER_MENU_NO AS "upperMenuId"
|
, B.UPPER_MENU_NO AS "upperMenuId"
|
||||||
, B.RELATE_IMAGE_PATH AS "relateImagePath"
|
, B.RELATE_IMAGE_PATH AS "relateImagePath"
|
||||||
, B.RELATE_IMAGE_NM AS "relateImageNm"
|
, B.RELATE_IMAGE_NM AS "relateImageNm"
|
||||||
, (SELECT C.URL FROM COMTNPROGRMLIST C WHERE B.PROGRM_FILE_NM = C.PROGRM_FILE_NM) AS "chkURL"
|
, (SELECT C.URL FROM COMTNPROGRMLIST C WHERE B.PROGRM_FILE_NM = C.PROGRM_FILE_NM) AS "chkURL"
|
||||||
FROM COMTNMENUCREATDTLS A, COMTNMENUINFO B
|
FROM COMTNMENUCREATDTLS A, COMTNMENUINFO B
|
||||||
WHERE A.MENU_NO = B.MENU_NO
|
WHERE A.MENU_NO = B.MENU_NO
|
||||||
AND A.AUTHOR_CODE = (SELECT AUTHOR_CODE from COMTNEMPLYRSCRTYESTBS
|
AND A.AUTHOR_CODE IN (SELECT AUTHOR_CODE from COMTNEMPLYRSCRTYESTBS
|
||||||
WHERE SCRTY_DTRMN_TRGET_ID = #tmpUniqId#)
|
WHERE SCRTY_DTRMN_TRGET_ID = #tmpUniqId#)
|
||||||
ORDER BY B.MENU_ORDR
|
ORDER BY B.MENU_ORDR
|
||||||
]]>
|
]]>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="menuManageDAO.selectLastMenuURL" parameterClass="MenuManageVO" resultClass="String">
|
<select id="menuManageDAO.selectLastMenuURL" parameterClass="MenuManageVO" resultClass="String">
|
||||||
@ -66,7 +66,7 @@
|
|||||||
(select MIN(MENU_ORDR)
|
(select MIN(MENU_ORDR)
|
||||||
from COMTNMENUCREATDTLS A, COMTNMENUINFO B
|
from COMTNMENUCREATDTLS A, COMTNMENUINFO B
|
||||||
where A.MENU_NO = B.MENU_NO
|
where A.MENU_NO = B.MENU_NO
|
||||||
AND A.AUTHOR_CODE = (SELECT AUTHOR_CODE from COMTNEMPLYRSCRTYESTBS
|
AND A.AUTHOR_CODE IN (SELECT AUTHOR_CODE from COMTNEMPLYRSCRTYESTBS
|
||||||
WHERE SCRTY_DTRMN_TRGET_ID = #tempValue#)
|
WHERE SCRTY_DTRMN_TRGET_ID = #tempValue#)
|
||||||
AND B.UPPER_MENU_NO = #menuNo#)
|
AND B.UPPER_MENU_NO = #menuNo#)
|
||||||
]]>
|
]]>
|
||||||
@ -81,7 +81,7 @@
|
|||||||
(select MIN(MENU_ORDR)
|
(select MIN(MENU_ORDR)
|
||||||
from COMTNMENUCREATDTLS A, COMTNMENUINFO B
|
from COMTNMENUCREATDTLS A, COMTNMENUINFO B
|
||||||
where A.MENU_NO = B.MENU_NO
|
where A.MENU_NO = B.MENU_NO
|
||||||
AND A.AUTHOR_CODE = (SELECT AUTHOR_CODE from COMTNEMPLYRSCRTYESTBS
|
AND A.AUTHOR_CODE IN (SELECT AUTHOR_CODE from COMTNEMPLYRSCRTYESTBS
|
||||||
WHERE SCRTY_DTRMN_TRGET_ID = #tempValue#)
|
WHERE SCRTY_DTRMN_TRGET_ID = #tempValue#)
|
||||||
AND B.UPPER_MENU_NO = #menuNo#)
|
AND B.UPPER_MENU_NO = #menuNo#)
|
||||||
]]>
|
]]>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user