์๋ฐ ๊ธฐ๋ฐ์ ๊ฐ์ฒด-๊ด๊ณ ๋งคํ(ORM) ํ๋ ์์ํฌ
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ
์ด๋ธ๊ณผ ์๋ฐ ํด๋์ค ๊ฐ์ ๋งคํ์ ์ ๊ณตํ์ฌ,
์๋ฐ ๊ฐ์ฒด๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ๊ณ ์กฐํํ๋ ๊ณผ์ ์ ๋จ์ํํ๋ค.
Hibernate๋ JPA(Java Persistence API)์ ๊ตฌํ์ฒด ์ค ํ๋๋ก,
JPA ํ์ค์ ์ค์ํ๋ฉด์๋ ์ถ๊ฐ์ ์ธ ๊ธฐ๋ฅ๊ณผ ์ต์ ํ๋ฅผ ์ ๊ณตํฉ๋๋ค.
2-1.๊ฐ์ฒด-๊ด๊ณ ๋งคํ(ORM)
์๋ฐ ๊ฐ์ฒด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ
์ด๋ธ์ ๋งคํํ์ฌ,
๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ๊ณผ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ์ ๋ถ์ผ์น๋ฅผ ํด๊ฒฐ
Hibernate๋ ํ์ํ SQL ์ฟผ๋ฆฌ๋ฅผ ์๋์ผ๋ก ์์ฑํ๊ณ ์คํํฉ๋๋ค.
๊ฐ๋ฐ์๋ SQL ์ฟผ๋ฆฌ๋ฅผ ์ง์ ์์ฑํ ํ์ ์์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์
์ ์ํํ ์ ์์ต๋๋ค.
Hibernate๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํธ๋์ญ์
์ ์๋์ผ๋ก ๊ด๋ฆฌํ์ฌ ๋ฐ์ดํฐ์ ์ผ๊ด์ฑ๊ณผ ๋ฌด๊ฒฐ์ฑ์ ์ ์งํฉ๋๋ค.
JTA(Java Transaction API)๋ฅผ ํตํ ๋ถ์ฐ ํธ๋์ญ์
๋ ์ง์ํฉ๋๋ค.
1์ฐจ ์บ์(Session ๋ ๋ฒจ ์บ์)์ 2์ฐจ ์บ์(SessionFactory ๋ ๋ฒจ ์บ์)๋ฅผ ์ง์ํ์ฌ ์ฑ๋ฅ์ ์ต์ ํํฉ๋๋ค.
๋ค์ํ ์บ์ ์ ๊ณต์(ehcache, Infinispan ๋ฑ)์ ํตํฉํ ์ ์์ต๋๋ค.
2-5.HQL (Hibernate Query Language)
SQL๊ณผ ์ ์ฌํ ๋ฌธ๋ฒ์ ์ฌ์ฉํ์ง๋ง, ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ
์ด๋ธ์ด ์๋ ์ํฐํฐ ๊ฐ์ฒด๋ฅผ ๋์์ผ๋ก ์ฟผ๋ฆฌ๋ฅผ ์์ฑํฉ๋๋ค.
JPQL๊ณผ ์ ์ฌํ๋ฉฐ, ๊ฐ์ฒด ์งํฅ์ ์ธ ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
2-6.๋ฐ์ดํฐ๋ฒ ์ด์ค ๋
๋ฆฝ์ฑ
Hibernate๋ ํน์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ข
์๋์ง ์์ผ๋ฉฐ, ๋ค์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋์ํ ์ ์์ต๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐฉ์ธ(dialect)์ ์ค์ ํ์ฌ ๋ค์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ์ง์์ ์ ๊ณตํฉ๋๋ค.