ํ ์คํธ ํ๋ก์ ํธ๋ก ์ฌ์ฉํ๋ ์๋น์ค๋ฅผ ์์ ํ๊ธฐ ์ํด์ ์ค๋๋ง์ ํ๋ก์ ํธ๋ฅผ ์ด๊ณ Mysql ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์ฌ์ฉํ๋ ์ค์ ๋ค์ Oracle ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค์ ์ผ๋ก ๋ณ๊ฒฝ ํ, ์๋ฒ๋ฅผ ๊ฐ๋ํ๊ณ ๋ก๊ทธ์ธ์ ์งํํ๋ค. ๊ทธ๋ฐ๋ฐ, ORA-00923: From keyword not found where expected. ๋ผ๋ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค. From์ ๊ณผ ๊ด๋ จ์ด ์๋๊ฑฐ ๊ฐ์ DB ์ฟผ๋ฆฌ๊ฐ ์๋ Mapper์ชฝ์ผ๋ก ๊ฐ ๋ก๊ทธ์ธ์ ๊ด์ฅํ๋ Mapper xml์ ๋ค์ฌ๋ค๋ณด์๋ค. ์ฟผ๋ฆฌ์ Mysql์์ ์ฌ์ฉ์ค์ด๋ ๊ตฌ๋ฌธ์ด ์์ด ์์ ํ๊ณ , ์คํ ๋ํ ํ์ธํ์ง๋ง ์คํ๋ ์์๋ค. ๋ค์ ์๋ฒ๋ฅผ ์ฌ๊ฐ๋ํ๊ณ ๋ก๊ทธ์ธ์ ์งํํ๋ค. ํ์ง๋ง ๊ฐ์ ์๋ฌ๊ฐ ๋ฟ์ด์ ธ๋์๋ค. ์ค์ ์ด ์๋ชป๋๊ฑด๊ฐ? ์ด๋์๋ถํฐ ์๋ชป๋๊ฑด์ง ํ๋ํ๋์ฉ ์ฐพ์๋๊ฐ๋ค. ํ์ฐธ์ ํค๋งค๊ณ ์๋ํ๋ค๊ฐ ๋ง์ง๋ง์ ๋์์ ์๊ธธ์ ๋น๋ ค ํด๊ฒฐํ ์ ์์๋ค. ๋ฌธ์ ๋ ์ด๋ฌ๋ค. DataSource bean์ ๋ฑ๋กํ๋ ๊ณผ์ ์์ ์์ฑ์ผ๋ก ValidationQuery๋ฅผ ์ค์ ํ๋ ๋ถ๋ถ์ด ์๋๋ฐ, ์ฌ๊ธฐ์ ์ ์ Mysql ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์ฌ์ฉํ๋ฉด์ ์ค์ ํด๋์๋ ๊ฐ์ด ๋ฌธ์ ๊ฐ ๋๋ค.
์ฒ๋ฆฌ ๊ฒฐ๊ณผ
datasource-context.xml์์ ๋ฑ๋กํ DataSource bean๋ฑ๋ก์์ ์ค์ ํ
ValidationQuery์ ์ค์ ๊ฐ์ด ์๋ชป๋์ด ๋ฐ์ํ์ฌ ์ค์ ๊ฐ์ ๋ณ๊ฒฝ
validationQuery์ค์ ๋ถ๋ฅผ ์ญ์ ํ๊ฑฐ๋, ์ญ์ ํ์ง ์๊ณ ์ฌ์ฉํ๋ค๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค Oracle ์ค์ ์์ ์ฌ์ฉ๊ฐ๋ฅ ํ "select 1 from dual"์ ๊ฐ์ผ๋ก ๋์ฒดํ์ฌ ์ค์ ํฉ๋๋ค. Mysql๊ฐ์ ๊ฒฝ์ฐ๋ FROM์ ์๋ต์ด ๊ฐ๋ฅํ์ง๋ง, Oracle์์๋ ๊ทธ๋ ์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ validationQuery์ ์ค์ ๋์ด ์๋ select 1 ๊ฐ์ด From์ ๋๋ฝ์ผ๋ก ์ฒดํนํ๋ ๋ถ๋ถ์ด ๋์๋ค. ๊ทธ๋์ Mapper์ ์ค์ ๋์ด ์๋ ์ฟผ๋ฆฌ xml๋ค์ ๋ฌธ์ ๊ฐ ์๋ค๊ณ ํ๋จํ์ฌ ์๋ฌ๋ฅผ ๋ฟ์๋ค.
๋๊ธ