ํ์ฌ RxPersistenceProvider
์๋ ์คํค๋ง ์ง์์ด ์์ผ๋ฏ๋ก ์๋ ํ
์ด๋ธ ์์ฑ๊ณผ ๊ฐ์ ์์
์ JDBC์์ ์ํํด์ผ ํฉ๋๋ค.
์ฑ์ด RX๋ง ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ฌ์ฉ์์๊ฒ JDBC ๋๋ผ์ด๋ฒ๋ฅผ ์ถ๊ฐ/๊ตฌ์ฑํ๋๋ก ์๊ตฌํ๋ ๊ฒ์ ๋ค์ ์ด์ํด ๋ณด์ ๋๋ค. ์ด๋ก ์ ์ผ๋ก ์ฐ๋ฆฌ๋ JDBC ์ฐ๊ฒฐ ๋์ RxConnection์ ์ฌ์ฉํ์ฌ ๋์ผํ ์คํค๋ง ์์ฑ์ ๋ชจ๋ ์ํํ ์ ์์ด์ผ ํฉ๋๋ค.
์กฐ๊ธ ์ด์ํ๋ค. ๋์์ ๋์ผํ ์ฐ๊ฒฐ ๋ฌธ์์ด์ ๊ตฌ์ฑํ๋ ๋ฐ ๋๋ฌด ๋ง์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์ง ์๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋ฏธ๋์ ์ฌ์ฉ์๋ Rx์ ํจ๊ป ORM์ ์ฌ์ฉํ ์ ์์ ๊ฒ์ด๋ฉฐ ์ผ๋ถ ๊ฒฝ์ฐ์๋ง Rx API๋ฅผ ์ฌ์ฉํ๊ธฐ๋ฅผ ์ํ ๊ฒ์ ๋๋ค. ORM ์ฌ์ฉ์์๊ฒ ์ด๋ฏธ ์น์ํ ์์ฑ์ ์ฌ์ฉํ๋ ๊ฒ๋ ์ข์ต๋๋ค.
์ ์ฃ์กํฉ๋๋ค. ๋๋ ๋น์ ์ด ๋ถ๋์ฐ ์ด๋ฆ์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์์ง ์๋ค๋ ๊ฒ์ ๋ฐฉ๊ธ ๊นจ๋ฌ์์ต๋๋ค.
์ฃผ๋ก ์ฌ์ฉํ๊ณ ์ถ์ ์ ์ค ์ผ์ด์ค๊ฐ ์๋์ง ๊ถ๊ธํฉ๋๋ค.
๋ค๋ฅธ ๊ตฌ์ฑ ๋งค๊ฐ๋ณ์.
๋ค์ดํฐ๋ธ ๋ฐ์ ๋๋ผ์ด๋ฒ์ ํน์
์์ฑ.
์ด์จ๋ ORM๊ณผ ์ ์ฌํ ์์ฑ์ ๊ฐ์ ธ์ผ ํ ๊ฒ ๊ฐ์ง๋ง
jdbc
๋ถ๋ถ์ด ์ด๋ฆ์์ ์ ๊ฑฐ๋์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ํ ๊ฐ์ง ์ ํ์ ์์ฑ๋ง ์ค์ ํ๋ฉด ์ด๋ป๊ฒ ๋๋์ง ๊ฒฐ์ ํฉ๋๋ค.
2020๋
5์ 1์ผ ๊ธ์์ผ ์คํ 5์ 53๋ถ Andrew Guibert [email protected]
์ผ๋ค:
๊ฐ์ ์ด์ ๋ก ๋๋ ์ฐ๋ฆฌ๊ฐ ๋ฌผ๊ฑด์ ๋ง๋๋ ๋ฐ ์ง๋์น๊ฒ ์์ ๋ป์ด์๋ ์๋๋ค๊ณ ์๊ฐํฉ๋๋ค.
ํธ๋ฆฌํ๋ค/์ต์ํ๋ค. ์๋ฅผ ๋ค์ด, ์ง๊ธ ์ฐ๋ฆฌ๋ RX ๊ตฌ์ฑ์ ์ง์ํฉ๋๋ค.
ํธ๋ฆฌํ๊ณ ์น์ํ์ง๋ง ๊ธฐ์ ์ ์ผ๋ก๋ ๊ทธ๋ ์ง ์์ jdbc ํ๋กํ ์ฝ URL
JDBC๋ฅผ ์ฌ์ฉํ์ง ์๊ธฐ ๋๋ฌธ์ ์ ํํฉ๋๋ค.โ
๋น์ ์ด ๋๊ธ์ ๋ฌ์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธ
https://github.com/hibernate/hibernate-rx/issues/104#issuecomment-622468348 ,
๋๋ ๊ตฌ๋ ์ทจ์
https://github.com/notifications/unsubscribe-auth/AAEIQ5JHS5PQ7M7APGO2YVLRPL5APANNCNFSM4MXDM4CA
.
์ด์จ๋ ORM๊ณผ ์ ์ฌํ ์์ฑ์ ๊ฐ์ ธ์ผ ํ์ง๋ง ์ด๋ฆ์์
jdbc
๋ถ๋ถ์ด ์ ๊ฑฐ๋์ด์ผ ํฉ๋๋ค.
๋ค์๊ณผ ๊ฐ์ ์ด์ ๋ก ํ์ค JDBC URL ํ์์ ๊ณ ์ํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
@DavidD OP์์ ๋ฌธ์ ๋ฅผ ์ ๋๋ก ์ค๋ช ํ์ง ์์์ ์ ์์ง๋ง ๊ตฌ์ฑ ๋งค๊ฐ๋ณ์๋ ์คํค๋ง ์์ฑ์ ์ด๋ป๊ฒ ์ ์ฉ๋ฉ๋๊น?
์ด ๋ฌธ์ ์ ๋ํ ์๋๋ฅผ ๋ค์ ์ค๋ช ํ๊ธฐ ์ํด JDBC ๋๋ผ์ด๋ฒ ๋๋ jdbc ์ ์ฉ ๊ตฌ์ฑ์ ํฌํจํ ํ์ ์์ด ํ ์ด๋ธ ์๋ ์ญ์ /์์ฑ ์ ์ฐจ๋ฅผ ์ํํ ์ ์๋ค๊ณ ์ ์ํฉ๋๋ค(RX๊ฐ ๋์ผํ ์์ฑ์ ๋ค์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ , ๊ทธ๋๋ ๊ด์ฐฎ์)
์ ์ฃ์กํฉ๋๋ค. ๋๋ ๋น์ ์ด ๋ถ๋์ฐ ์ด๋ฆ์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์์ง ์๋ค๋ ๊ฒ์ ๋ฐฉ๊ธ ๊นจ๋ฌ์์ต๋๋ค.
๋ค, ์๊ฒ ์ต๋๋ค. ๋ด ์๋ชป์ด์ผ. ์ฒ์์ด๋ผ ๋๋ฌด ๋นจ๋ฆฌ ์ฝ์๋ค.
์ฑ์ด RX๋ง ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ฌ์ฉ์์๊ฒ JDBC ๋๋ผ์ด๋ฒ๋ฅผ ์ถ๊ฐ/๊ตฌ์ฑํ๋๋ก ์๊ตฌํ๋ ๊ฒ์ ๋ค์ ์ด์ํด ๋ณด์ ๋๋ค.
์ด ๋ฌธ์ฅ์ ์ด๋ฏธ ORM์ ์กด์ฌํ๋ JDBC ์ค์ ์ ๋ํ ์์ฑ์ ์ฌ์ฉํ๋ค๋ ์ฌ์ค์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์๋ค๊ณ ์๊ฐํ๊ฒ ํ์ต๋๋ค. ์ฐ๋ฆฌ๊ฐ ๊ทธ๊ฒ์ ๋ํด ์ด์ผ๊ธฐํ๋ค๋ ๊ฒ์ ์ฌ์ ํ โโ์ข์ ์ผ์ด๋ฉฐ ์ง๊ธ์ ๋ณ๊ฒฝํ ๊ณํ์ด ์์ต๋๋ค.
๊ทธ๋์ ์ด์ ์๋ JDBC๋ฅผ ํตํด ์คํค๋ง ๋ด๋ณด๋ด๊ธฐ๋ฅผ ์ํํ๋ ๊ฒ์ด ์๋ฒฝํ๋ค๊ณ ์ฃผ์ฅํ์ต๋๋ค. (๋ฐ์ํ ์คํค๋ง ๋ด๋ณด๋ด๊ธฐ๋ ๋ฌด์์ ๋๊น?)
๊ทธ๋ฌ๋ @emmanuelbernard ๋ฐ @Sanne ๊ณผ์ ์ ํ ๋ํ์์ ์ด๊ฒ์ด ์ค์ ๋ก Quarkus ์ฌ์ฉ์์๊ฒ ์ ์ฌ์ ์ธ ๊ณ ์ถฉ์ ์ด๋ผ๋ ์ฌ์ค์ ์๊ฒ ๋์์ต๋๋ค.
@guibert ๊ฐ ์ด์ ๋ํด ๋์๊ฒ ๊ฒฝ๊ณ ํ๋ ค๊ณ ํ ๋ ๋๋ ๋ ๋ง์ ๊ด์ฌ์
๋ฐ๋ผ์ ์ด์จ๋ ์ด๊ฒ์ ์ฐ๋ฆฌ๊ฐ ์ฐ์ ์์๋ฅผ ๋์ด์ผ ํ๋ ๋ฌธ์ ์ ๋๋ค. ๋น๋ก ์ด๊ธฐ ๋ฆด๋ฆฌ์ค๋ฅผ ์ํด ์ ์๊ฐ์ ์๋ฃ๋ ์ ์๋ค๊ณ ์๊ฐํ์ง๋ง ๋ง์ ๋๋ค.
์ด์ํ ์๊ฐ - ๋ด๊ฐ ์ ๋ง ๋ชฐ๋ผ์ ์ด๋ฆฌ์์ ์ผ์ด๋ผ๋ฉด ์ฉ์ํด ์ฃผ์ธ์ - ํ์ง๋ง ๋ฐ์ํ ๋๋ผ์ด๋ฒ๋ฅผ JDBC ํธํ ์ด๋ํฐ๋ก ๋ํํ ๋ค์ ์คํค๋ง ์์ฑ ์ฝ๋์ ์ ๋ ฅํ ์ ์๋์ง ๊ถ๊ธํ์ญ๋๊น?
๋๋ ๊ทธ๊ฒ์ด schemagen ๋๊ตฌ๋ฅผ ์ฉ์ดํ๊ฒ ํ ์ ์๋ค๋ฉด ๊ทธ๋ฌํ ์์ ์ด ๊ณผ๋ํ๋ค๊ณ ์๊ฐํ์ง๋ง ์๋ง๋ ๋ ๋ง์ ์ฉ๋๊ฐ ์์ต๋๊น?
@์ฐ๋ค
์ฌ๊ธฐ์ GenerationTarget
๋ผ๋ ์ถ์ํ๊ฐ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ๊ตฌํํ ์ ์์์ง ๋ชจ๋ฅด์ง๋ง, ํ๋๋ฅผ ์ฐ๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ ํํ 100% ํ์ ํ ์๋ ์์ต๋๋ค.
์คํจํ ๊ฒฝ์ฐ ์คํค๋ง ๋ด๋ณด๋ด๊ธฐ ๋๊ตฌ์ SCRIPT
๋ด๋ณด๋ด๊ธฐ๋ฅผ ์์ฒญํ ๋ค์ ๋ช
๋ น์ ํ๋์ฉ DB์ ์ ์กํ๋ฉด ๋ฉ๋๋ค.
์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ๊ตฌํํ ์ ์์์ง ๋ชจ๋ฅด์ง๋ง, ํ๋๋ฅผ ์ฐ๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ ํํ 100% ํ์ ํ ์๋ ์์ต๋๋ค.
๋ฌธ์ ๋ ์ด๋ฌํ ๋์ ๋ชฉ๋ก์ด ์ ๋์์ ์ถ๊ฐํ ํ์คํ ๋ฐฉ๋ฒ ์์ด ํ๋์ฝ๋ฉ๋ ๊ฒ์ฒ๋ผ ๋ณด์ธ๋ค๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ์ฝ์ด์ ๋ํ ์์ ์์ ์ ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ์ ์ถฉ๋ถํ ์ ์์ต๋๋ค.
ํ์ธ. ์ด๊ฒ์ด ์ฌ์ ํ ์ต์ฐ์ ์์๋ ์๋์ง๋ง ๊ฐ๋ฅํ ํ ๋ค์ ORM ๋ฆด๋ฆฌ์ค๋ฅผ ์ฐ๊ธฐํ ๊ฒ์ด๋ฏ๋ก ๋๊ตฐ๊ฐ๊ฐ ์๊ฐ์ ์ฐพ์ ๊ฒฝ์ฐ๋ฅผ ๋๋นํ์ฌ ๋ง์ง๋ง ์๊ฐ ํจ์น๋ฅผ ๋ ํฌํจํ ์ ์์ต๋๋ค.
์ฐธ๊ณ ๋ก ๋ฆด๋ฆฌ์ค๋ฅผ ์ํํ๋ ๋ฐ ์ค์ ๋ก๋ 20๋ถ ์ ๋ ์์๋๋ค๋ ์ ์ ๊ธฐ์ตํ์ญ์์ค. ๊ทธ๋ฌ๋ ์ค์ ๋ก ์ฌ์ฉํ๊ธฐ ์ ์ Maven ์ค์ ๋๊ธฐํ์ ๋ชจ๋ ๊ฒ์ ๊ธฐ๋ค๋ ค์ผ ํฉ๋๋ค.
์ด๋ Reactive ๋ฆด๋ฆฌ์ค๊ฐ ๊ฐ๋ฅํ๊ธฐ ์ ์ ์ฝ 24์๊ฐ ๋์ ๋ฆด๋ฆฌ์คํด์ผ ํจ์ ์๋ฏธํฉ๋๋ค.
๋๋ ์ด๊ฒ์ ์๋ํ๊ธฐ ์ํด ์๊ฐ์ ํ ์ ํ ๊ฒ์ด๋ค. ์๋ง๋ ๊ทธ๊ฒ์ ๋งค์ฐ ๊ฐ๋จํฉ๋๋ค. ์์๋ณด๊ฒ ์ต๋๋ค.
์๋ง๋ ๊ทธ๊ฒ์ ๋งค์ฐ ๊ฐ๋จํฉ๋๋ค. ์์๋ณด๊ฒ ์ต๋๋ค.
๋ฐ๋ผ์ ์ค์ ๋ก ๋น๊ต์ ๊ฐ๋จํ์ง๋ง ๋ด๊ฐ ๊ณ ๋ คํ์ง ์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. Hibernate Reactive๋ ๋ ์ด์ JDBC ๋ฉํ๋ฐ์ดํฐ์ ์ก์ธ์คํ ์ ์์ผ๋ฉฐ, ์ด๋ ์ผ๋ถ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ ธ์ค์ง๋ง ๋๋ฌด ๋์ฐํ๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ๋คํ์ค๋ฝ๊ฒ๋ Hibernate๋ JDBC ๋ฉํ๋ฐ์ดํฐ๊ฐ ๋งค์ฐ ๋ถ์์ ํ๊ณ ๊ทธ๊ฒ์ ์์กดํ์ง ์์ ๋ ์์ฑ๋์์ต๋๋ค.
๊ด์ฐฎ์ ๊ฒ ๊ฐ์์.
๋ํ Hibernate Reactive๊ฐ ์ค์ ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ค๋
์ท์ ์ป๊ธฐ ์ํด JDBC ์ฐ๊ฒฐ์ ์ฌ์ฉํ๋ ForeignKeys
์ ๋ฒ๊ทธ๋ฅผ ๋
ธ์ถํ์ต๋๋ค! ํด๋น ๋ฌธ์ ์ ๋ํ ๋ณ๋์ ๋ฒ๊ทธ ๋ณด๊ณ ์๋ฅผ ์ด๊ฒ ์ต๋๋ค.
๊ต์ฅํฉ๋๋ค, ๊ฐ์ฌํฉ๋๋ค!
Gavin์ ์์ ์ฌํญ์ ORM์ ๋ณํฉ๋์์ต๋๋ค. ์ด์ ์คํค๋ง ์์ฑ์ด ๊ฐ๋ฅํด์ผ ํฉ๋๋ค.
์๋ํ๋ ์คํค๋ง ์ ๋ฐ์ดํธ๊ฐ ํจ์ฌ ๋ ๋ณต์กํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ฒซ ๋ฒ์งธ ์ปท์์๋ ์ด๊ฒ์ด ๋ ์ค์ํ๋ค๋ ๋ฐ ๋์ํ ์ ์์ต๋๊น?
Gavin์ ์์ ์ฌํญ์ ORM์ ๋ณํฉ๋์์ต๋๋ค. ์ด์ ์คํค๋ง ์์ฑ์ด ๊ฐ๋ฅํด์ผ ํฉ๋๋ค.
๊ฐ์ฌ ํด์.
์๋ํ๋ ์คํค๋ง ์ ๋ฐ์ดํธ๊ฐ ํจ์ฌ ๋ ๋ณต์กํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ค, ํ์ฌ ๊ตฌํ์ด ์ ์ ์ผ๋ก JDBC ๋ฉํ๋ฐ์ดํฐ์ธ IIRC๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๊ธฐ ๋๋ฌธ์ ํจ์ฌ ๋ ์ด๋ ต์ต๋๋ค.
์ฒซ ๋ฒ์งธ ์ปท์์๋ ์ด๊ฒ์ด ๋ ์ค์ํ๋ค๋ ๋ฐ ๋์ํ ์ ์์ต๋๊น?
๋ค, ์ด ๋จ๊ณ์์ ์์ ํ ์๊ฐ์ ์ ํ ์์ต๋๋ค. ํ์ํ๋ค๊ณ ์๊ฐํ์ง๋ ์์ต๋๋ค.
@Sanne ๊ทธ ๋ณ๊ฒฝ ์ฌํญ์ด ํฌํจ๋ ORM ์ฝ์ด๊ฐ ์ถ์๋๊ธฐ
@gavinking ์ฐ๋ฆฌ๋ ์์์ผ์ ์ถ์๋ฅผ ๊ณํํ ์ ์์ต๋๋ค. ํ์ง๋ง ๋ ๋ง์ ๋ณ๊ฒฝ ์ฌํญ์ด ํ์ํ ์ ์๋ค๋ฉด ์ฐ๊ธฐํ๋ ๊ฒ์ด ์ต์ ์ธ์ง ๊ถ๊ธํฉ๋๋ค.
์ฐ๋ฆฌ๋ ๋ํ Quarkus๊ฐ ํ์๋ก ํ๋ ๋ช ๊ฐ์ง ๋ค๋ฅธ ์์ ์ฌํญ์ ๋ํด ์์
ํ๊ณ ์์ต๋๋ค. ๊ทธ๋์ ์ฐ๋ฆฌ๊ฐ ์ํ ๋๋ง๋ค ํ๋๋ฅผ ๋ฆด๋ฆฌ์คํ ์ ์์ง๋ง ๋์ค์ ๋ ๋ง์ ์์ ์ฌํญ์ ๋ฆด๋ฆฌ์คํ ์ ์์ต๋๋ค.
@Sanne ๊ผผ์ง๋ง์ , ๊ทธ ๋๊ธ์ ์ ๊ฐ #113์ ์ฌ๊ฐ์ฑ์
@gavinking ์ด๋ ์์ ์์ Hibernate์ ํ์ํ DB ๋ฉํ๋ฐ์ดํฐ์ ์ข ๋ฅ๋ฅผ ์ค๋ช ํ๋ Vertx-sql-client์ ๋ํ ๋ฌธ์ ๋ฅผ ์์ฑํ ์ ์์ต๋๊น? Vertx ํด๋ผ์ด์ธํธ๋ ์ธ์ ๊ฐ ํ์ฌ๋ณด๋ค ๋ ๋์ ๋ฉํ๋ฐ์ดํฐ API๋ฅผ ๊ฐ๊ฒ ๋ ๊ฒ์ ๋๋ค.
์ค๋๋ฅ๋ฅผ ์ํด +1!
Postgres์ฉ ๋ฉํ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ API๋ฅผ ๊ตฌ์ถํ๋ ค๋ ์ด๋์
ํฐ๋ธ๊ฐ ์์ต๋๋ค.
https://github.com/eclipse-vertx/vertx-sql-client/pull/513. ํผ๋๋ฐฑ์
ํ์คํ ์ด ๋ฌธ์ ๋ฅผ ์ค์ฌ์ผ๋ก ๋ ๋์ ์ผ๋ฐ API๋ฅผ ๊ตฌ์ถํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
2020๋
5์ 14์ผ ๋ชฉ์์ผ ์คํ 9์ 58๋ถ Andrew Guibert [email protected]
์ผ๋ค:
@gavinking https://github.com/gavinking ์ด๋ ์์ ์ ์ธ ์ ์์ต๋๊น?
DB ๋ฉํ๋ฐ์ดํฐ์ ์ข ๋ฅ๋ฅผ ์ค๋ช ํ๋ Vertx-sql-client ๋ฌธ์
์ต๋ ์ ์ ๋ชจ๋์ ํ์ํฉ๋๊น? Vertx ํด๋ผ์ด์ธํธ์๋ ๋ ๋์ ๋ฉํ๋ฐ์ดํฐ API๊ฐ ์์ด์ผ ํฉ๋๋ค.
์ธ์ ๊ฐ๋ ํ์ฌ๋ณด๋ค.โ
์ด ์ค๋ ๋์ ๊ฐ์ ํ๊ธฐ ๋๋ฌธ์ ์ด ๋ฉ์์ง๋ฅผ ๋ฐ๊ณ ์์ต๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธ
https://github.com/hibernate/hibernate-reactive/issues/104#issuecomment-628654875 ,
๋๋ ๊ตฌ๋ ์ทจ์
https://github.com/notifications/unsubscribe-auth/ABJV4JODSAYQT7BG2TWHZI3RRP2JFANCNFSM4MXDM4CA
.
์คํค๋ง ๊ด๋ฆฌ ๋๊ตฌ์ ํ์ํ ๊ฒ์ information_schema.tables
์ ์ ๋ณด์ ๋ํ ์ก์ธ์ค์ด๋ฉฐ information_schema.key_column_usage
๋ ๋ง์ฐฌ๊ฐ์ง์
๋๋ค.
์คํค๋ง ๊ด๋ฆฌ ๋๊ตฌ์ ํ์ํ ๊ฒ์
information_schema.tables
์ ์ ๋ณด์ ๋ํ ์ก์ธ์ค์ด๋ฉฐinformation_schema.key_column_usage
๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค.
ํ ๊ฐ์ง ์ต์
์ information_schema
๋ฅผ ์ฟผ๋ฆฌํ์ฌ ํด๋น ์ ๋ณด๋ฅผ ์ง์ ๊ฐ์ ธ์ค๋ ๊ฒ์
๋๋ค. ์ญ์ฌ์ ์ผ๋ก ํ๋ซํผ์ ์ฐจ์ด์ ์ ์ถ์ํํ๊ธฐ ์ํด JDBC ๋ฉํ๋ฐ์ดํฐ API๋ง ์ฌ์ฉํ์ต๋๋ค.
์ด๊ฑด ๋๋ฌ์ด!
๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ ์ฌ์ฉ์์๊ฒ ๋งค์ฐ ํฌ๋ช ํ ๋ฐฉ์์ผ๋ก ์ํ๋ฉ๋๋ค. JDBC ๋๋ผ์ด๋ฒ ๋๋ ์ฐ๊ฒฐ ํ์ด ์ค์ ๋์ด ์์ผ๋ฉด Hibernate ORM์ JDBC๋ฅผ ํตํด ์คํค๋ง ๋ด๋ณด๋ด๊ธฐ๋ฅผ ์ํํ์ง๋ง JDBC ๋๋ผ์ด๋ฒ๊ฐ ์์ผ๋ฉด ์คํค๋ง ๋ด๋ณด๋ด๊ธฐ๋ฅผ ์ํํฉ๋๋ค. Vert.x ๋๋ผ์ด๋ฒ๊ฐ ์์๋ฉ๋๋ค.
๊ต์ฅํด!
์ ๋ง ๊ฐ์ฌํฉ๋๋ค
๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ ์ฌ์ฉ์์๊ฒ ๋งค์ฐ ํฌ๋ช ํ ๋ฐฉ์์ผ๋ก ์ํ๋ฉ๋๋ค. JDBC ๋๋ผ์ด๋ฒ ๋๋ ์ฐ๊ฒฐ ํ์ด ์ค์ ๋์ด ์์ผ๋ฉด Hibernate ORM์ JDBC๋ฅผ ํตํด ์คํค๋ง ๋ด๋ณด๋ด๊ธฐ๋ฅผ ์ํํ์ง๋ง _iff_ JDBC ๋๋ผ์ด๋ฒ๊ฐ ์๋ ๊ฒฝ์ฐ ์คํค๋ง ๋ด๋ณด๋ด๊ธฐ๋ฅผ ํตํด Vert.x ๋๋ผ์ด๋ฒ๊ฐ ์์๋ฉ๋๋ค.
๊ทธ๋ฅ ๊ถ๊ธํด์ JDBC ์ ๊ทผ ๋ฐฉ์์ ๋จผ์ ์ฌ์ฉํด์ผ ํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? vertx๋ฅผ ํตํด ์คํํ ์ ์๋ ๊ธฐ๋ฅ์ด ์๋ค๋ฉด ํญ์ ์คํํ์ง ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
๊ด๋ จ ์๋ ์ผ๋ถ ์ฐ๊ฒฐ์ด ์ค์ ๋๊ณ ์๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ๋์์ด ํธ๋ฆฌ๊ฑฐ๋๋ ๊ฒฝ์ฐ ์ฌ์ฉ์์๊ฒ ํผ๋์ ์ค ์ ์์ต๋๋ค. ๋ํ - ๋ค๋ฅธ ์ฐ๊ฒฐ์ด ์ค์ ๋ก ๋์ผํ DB๋ฅผ ๊ฐ๋ฆฌํค๋์ง ์ด๋ป๊ฒ ์ ์ ์์ต๋๊น?
๊ทธ๋ฅ ๊ถ๊ธํด์ JDBC ์ ๊ทผ ๋ฐฉ์์ ๋จผ์ ์ฌ์ฉํด์ผ ํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? vertx๋ฅผ ํตํด ์คํํ ์ ์๋ ๊ธฐ๋ฅ์ด ์๋ค๋ฉด ํญ์ ์คํํ์ง ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
์ผ๋ฐ JDBC ๋๋ผ์ด๋ฒ๋ก ์ค์ ํ ์ผ๋ฐ Hibernate๊ฐ ์๋ค๋ฉด ์ ์ฌ์ฉํ์ง ์์ต๋๊น? ๋ฐ์ํ ์คํค๋ง ๋ด๋ณด๋ด๊ธฐ๋ ์๋ฏธ๊ฐ ์์ต๋๋ค. ์ด๊ฒ์ด ์ ๋๋ก ์๋ํ๋๋ก ํ๋ ค๋ฉด ๋ง์ง๋ง์ ์์ ํ ๋ถ์พํ join()
๋ฅผ ์ํํด์ผ ํฉ๋๋ค.
๋ค๋ฅธ ์ฐ๊ฒฐ์ด ์ค์ ๋ก ๋์ผํ DB๋ฅผ ๊ฐ๋ฆฌํค๋์ง ์ด๋ป๊ฒ ์ ์ ์์ต๋๊น?
๋์ผํ JDBC URL์ด๊ธฐ ๋๋ฌธ์?