μ’ μ’ λκΈκ³Ό κ°μ κ΅¬μ‘°λ‘ λμ΄ μλ νμ΄μ§λ₯Ό κ°λ°ν λκ° μμ΅λλ€. μ΄λ² ν¬μ€ν μ κ³κΈ°λ μΉ΄ν κ³ λ¦¬λ₯Ό ꡬμ±ν DBμμ νμ μΉ΄ν κ³ λ¦¬ μνμ€ νλλ‘ λͺ¨λ μμ μΉ΄ν κ³ λ¦¬λ₯Ό νλ²μ κ°μ Έμ€κ³ μΆμ μκ°μ ꡬκΈλ§μ μμνκ² λμκ³ μ’μ λ°©λ²μ μ°Ύμμ μ 리νκ³ μ ν¬μ€ν μ νκ² λμμ΅λλ€.
WITH RECURSIVE (MySQL)
WITH RECURSIVE TTR (TECHCATEID, ORD_LEVEL, TECHCATEPID) AS
(
SELECT TECHCATEID, ORD_LEVEL, TECHCATEPID
FROM TCD_TECHCATE_REL
WHERE TECHCATEID = #{techcateid}
UNION ALL
SELECT R.TECHCATEID, R.ORD_LEVEL, R.TECHCATEPID
FROM TCD_TECHCATE_REL R
INNER JOIN TTR ON R.TECHCATEID = TTR.TECHCATEPID
)
SELECT ORD_LEVEL, TECHCATEID FROM TTR R ORDER BY TECHCATEID ASC;
Spring, Mybatis νκ²½μμ ꡬμ±λ 쿼리μ λλ€. μΈλ»λ³΄λ©΄ 볡μ‘ν΄ λ³΄μ΄μ§λ§ techcateid(νμ μΉ΄ν κ³ λ¦¬ μνμ€)λ§ νλΌλ―Έν°λ‘ λ°μμ ν΄λΉ νμ μΉ΄ν κ³ λ¦¬μ λͺ¨λ μμ μΉ΄ν κ³ λ¦¬λ₯Ό κ°μ Έμ¬ μ μλ 쿼리μ λλ€. WITH RECURSIVEλ μ²μ μ νκ² λ λ¬Έλ²μΈλ° μμνμ§λ§ μμ£Ό μ μ©ν¨μ μ μ μμ΅λλ€.