S02L01 – Hibernate HQL ์ž‘์—… – ๋ชฉ๋ก

html

HQL ์ˆ™๋ จ: Hibernate Query Language์— ๋Œ€ํ•œ ์ข…ํ•ฉ ๊ฐ€์ด๋“œ

๋ชฉ์ฐจ

  1. ์†Œ๊ฐœ
  2. HQL ์ดํ•ดํ•˜๊ธฐ
    1. HQL์ด๋ž€?
    2. Hibernate์—์„œ์˜ HQL์˜ ์ค‘์š”์„ฑ
    3. HQL ์‚ฌ์šฉ์˜ ์žฅ๋‹จ์ 
  3. HQL ์„ค์ •ํ•˜๊ธฐ
    1. Hibernate ์„ค์ •ํ•˜๊ธฐ
    2. ์—”ํ‹ฐํ‹ฐ ํด๋ž˜์Šค ์ •์˜ํ•˜๊ธฐ
  4. ๊ธฐ๋ณธ HQL ์ฟผ๋ฆฌ ์‹คํ–‰ํ•˜๊ธฐ
    1. ์„ธ์…˜ ์ƒ์„ฑํ•˜๊ธฐ
    2. ๊ฐ„๋‹จํ•œ ์ฟผ๋ฆฌ ์ž‘์„ฑํ•˜๊ธฐ
    3. getResultList๋กœ ๊ฒฐ๊ณผ ์ฒ˜๋ฆฌํ•˜๊ธฐ
  5. ๊ณ ๊ธ‰ HQL ์šด์˜
    1. HQL์—์„œ Criteria ์‚ฌ์šฉํ•˜๊ธฐ
    2. HQL์„ Spring๊ณผ ํ†ตํ•ฉํ•˜๊ธฐ
  6. ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌํ•˜๊ธฐ
    1. ํŠธ๋žœ์žญ์…˜ ์‹œ์ž‘๊ณผ ์ปค๋ฐ‹
    2. ํŠธ๋žœ์žญ์…˜ ๊ฒฝ๊ณ  ์ฒ˜๋ฆฌํ•˜๊ธฐ
  7. ์ผ๋ฐ˜์ ์ธ ์˜ค๋ฅ˜ ๋ฐ ๋ฌธ์ œ ํ•ด๊ฒฐ
    1. ์—”ํ‹ฐํ‹ฐ ์ด๋ฆ„ ์ดํ•ดํ•˜๊ธฐ
    2. List ๋ณ€ํ™˜ ๊ฒฝ๊ณ  ํ•ด๊ฒฐํ•˜๊ธฐ
  8. ๊ฒฐ๋ก 

์†Œ๊ฐœ

Mastering HQL: A Comprehensive Guide to Hibernate Query Language์— ์˜ค์‹  ๊ฒƒ์„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค. Hibernate ์„ธ๊ณ„์— ์ฒซ ๋ฐœ์„ ๋‚ด๋”›๋Š” ์ดˆ๋ณด์ž๋“ , ๊ธฐ๋ณธ ์ง€์‹์„ ๊ฐ€์ง€๊ณ  ์ดํ•ด๋ฅผ ์‹ฌํ™”ํ•˜๋ ค๋Š” ๊ฐœ๋ฐœ์ž๋“ , ์ด ์ „์ž์ฑ…์€ ์—ฌ๋Ÿฌ๋ถ„์„ ์œ„ํ•ด ๋งž์ถค ์ œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Hibernate Query Language (HQL)๋Š” Java ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒํ˜ธ ์ž‘์šฉ์„ ๋‹จ์ˆœํ™”ํ•˜๋Š” ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. HQL์„ ํ™œ์šฉํ•˜๋ฉด ๊ฐœ๋ฐœ์ž๋Š” ๋ณต์žกํ•œ ์ฟผ๋ฆฌ๋ฅผ ์‰ฝ๊ฒŒ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์–ด ์ƒ์‚ฐ์„ฑ์„ ๋†’์ด๊ณ  ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ๊น”๋”ํ•˜๊ฒŒ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

HQL์ด ์ค‘์š”ํ•œ ์ด์œ 

HQL์€ Hibernate์˜ ORM ๊ธฐ๋Šฅ์˜ ํ•ต์‹ฌ์— ์ž๋ฆฌ์žก๊ณ  ์žˆ์–ด ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ๊ณผ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ„์˜ ๊ฐ„๊ทน์„ ๋ฉ”์›Œ์ค๋‹ˆ๋‹ค. SQL์˜ ๋ณต์žก์„ฑ์„ ์ถ”์ƒํ™”ํ•˜๋Š” ๋Šฅ๋ ฅ์€ ํšจ์œจ์ ์ธ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ์— ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค.

์žฅ๋‹จ์ 

์žฅ์  ๋‹จ์ 
๋ณต์žกํ•œ SQL ์ฟผ๋ฆฌ๋ฅผ ๋‹จ์ˆœํ™” ์ดˆ๋ณด์ž์—๊ฒŒ๋Š” ํ•™์Šต ๊ณก์„ ์ด ์žˆ์Œ
์ฝ”๋“œ ๊ฐ€๋…์„ฑ๊ณผ ์œ ์ง€ ๋ณด์ˆ˜์„ฑ ํ–ฅ์ƒ ์›์‹œ SQL ์ตœ์ ํ™”์— ๋Œ€ํ•œ ์ œ์–ด๋ ฅ ๊ฐ์†Œ
Hibernate ํ”„๋ ˆ์ž„์›Œํฌ์™€ ์›ํ™œํ•˜๊ฒŒ ํ†ตํ•ฉ ์ฟผ๋ฆฌ ์‹คํ–‰์„ ์œ„ํ•œ Hibernate ์˜์กด์„ฑ
๊ฐ์ฒด ์ง€ํ–ฅ ๊ธฐ๋Šฅ ์ง€์› ์ผ๋ถ€ ๊ฒฝ์šฐ ์„ฑ๋Šฅ ์˜ค๋ฒ„ํ—ค๋“œ ๊ฐ€๋Šฅ์„ฑ

HQL์„ ์–ธ์ œ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š”๊ฐ€

HQL์€ ๊ฐ์ฒด ์ง€ํ–ฅ ์ฟผ๋ฆฌ์˜ ์ด์ ์„ ํ™œ์šฉํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•  ๋•Œ ์ด์ƒ์ ์ž…๋‹ˆ๋‹ค. ํŠนํžˆ ๊นจ๋—ํ•˜๊ณ  ์œ ์ง€ ๊ด€๋ฆฌํ•˜๊ธฐ ์‰ฌ์šด ์ฝ”๋“œ๋ฅผ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์ด ์šฐ์„ ์ˆœ์œ„์ธ ์ƒํ™ฉ์—์„œ ํŠนํžˆ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.


HQL ์ดํ•ดํ•˜๊ธฐ

HQL์ด๋ž€?

Hibernate Query Language (HQL)๋Š” SQL๊ณผ ์œ ์‚ฌํ•˜์ง€๋งŒ Hibernate์˜ ORM ํ”„๋ ˆ์ž„์›Œํฌ์— ๋งž๊ฒŒ ์กฐ์ •๋œ ๊ฐ•๋ ฅํ•œ ๊ฐ์ฒด ์ง€ํ–ฅ ์ฟผ๋ฆฌ ์–ธ์–ด์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ…Œ์ด๋ธ”์— ์ง์ ‘ ์ž‘๋™ํ•˜๋Š” SQL๊ณผ ๋‹ฌ๋ฆฌ, HQL์€ Hibernate์˜ ์—”ํ‹ฐํ‹ฐ ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณด๋‹ค ์ง๊ด€์ ์ด๊ณ  ์œ ์ง€ ๊ด€๋ฆฌํ•˜๊ธฐ ์‰ฌ์šด ์ฟผ๋ฆฌ๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

Hibernate์—์„œ์˜ HQL์˜ ์ค‘์š”์„ฑ

HQL์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ฐ์ฒด ๋ชจ๋ธ๊ณผ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ„์˜ ๋‹ค๋ฆฌ๋ฅผ ์ œ๊ณตํ•จ์œผ๋กœ์จ Hibernate์—์„œ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. SQL์˜ ๋ณต์žก์„ฑ์„ ์ถ”์ƒํ™”ํ•˜์—ฌ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒํ˜ธ ์ž‘์šฉ์˜ ๋ณต์žก์„ฑ๋ณด๋‹ค ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

HQL ์‚ฌ์šฉ์˜ ์žฅ๋‹จ์ 

์žฅ์ 

  • ๊ฐ์ฒด ์ง€ํ–ฅ: ์ฟผ๋ฆฌ๊ฐ€ ๊ฐ์ฒด๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ž‘์„ฑ๋˜์–ด ๋ณด๋‹ค ์ง๊ด€์ ์ž…๋‹ˆ๋‹ค.
  • ์œ ์ง€ ๋ณด์ˆ˜์„ฑ: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ ๋ณ€๊ฒฝ ์‹œ HQL ์ฟผ๋ฆฌ์˜ ์ˆ˜์ •์ด ๋” ์ ๊ฒŒ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  • ํ†ตํ•ฉ: Hibernate์˜ ์„ธ์…˜ ๊ด€๋ฆฌ ๋ฐ ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ์™€ ์›ํ™œํ•˜๊ฒŒ ํ†ตํ•ฉ๋ฉ๋‹ˆ๋‹ค.

๋‹จ์ 

  • ์„ฑ๋Šฅ ์˜ค๋ฒ„ํ—ค๋“œ: ์ผ๋ถ€ ๊ฒฝ์šฐ, HQL์€ ์›์‹œ SQL์— ๋น„ํ•ด ์„ฑ๋Šฅ ์ €ํ•˜๋ฅผ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ•™์Šต ๊ณก์„ : HQL์˜ ๋ฏธ๋ฌ˜ํ•œ ์ฐจ์ด๋ฅผ ์ดํ•ดํ•˜๋ ค๋ฉด ์ดˆ๊ธฐ ๋…ธ๋ ฅ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

HQL ์„ค์ •ํ•˜๊ธฐ

Hibernate ์„ค์ •ํ•˜๊ธฐ

HQL์— ๋›ฐ์–ด๋“ค๊ธฐ ์ „์—, Hibernate๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ์„ธ๋ถ€ ์ •๋ณด์™€ Hibernate ์„ค์ •์„ ํฌํ•จํ•˜๋Š” hibernate.cfg.xml ํŒŒ์ผ์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

์—”ํ‹ฐํ‹ฐ ํด๋ž˜์Šค ์ •์˜ํ•˜๊ธฐ

์—”ํ‹ฐํ‹ฐ ํด๋ž˜์Šค๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํ…Œ์ด๋ธ”์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, Users ์—”ํ‹ฐํ‹ฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


๊ธฐ๋ณธ HQL ์ฟผ๋ฆฌ ์‹คํ–‰ํ•˜๊ธฐ

์„ธ์…˜ ์ƒ์„ฑํ•˜๊ธฐ

HQL์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋ ค๋ฉด ๋จผ์ € Hibernate ์„ธ์…˜์„ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ์„ธ์…˜์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ„์˜ ์—ฐ๊ฒฐ์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

๊ฐ„๋‹จํ•œ ์ฟผ๋ฆฌ ์ž‘์„ฑํ•˜๊ธฐ

HQL์€ SQL๊ณผ ์œ ์‚ฌํ•˜์ง€๋งŒ ์—”ํ‹ฐํ‹ฐ ๊ฐ์ฒด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ชจ๋“  ์‚ฌ์šฉ์ž๋ฅผ ๋‚˜์—ดํ•˜๋ ค๋ฉด:

getResultList๋กœ ๊ฒฐ๊ณผ ์ฒ˜๋ฆฌํ•˜๊ธฐ

Hibernate ๋ฒ„์ „ 5.2 ์ด์ƒ์—์„œ๋Š” ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•ด ์ด์ „์˜ list() ๋ฉ”์„œ๋“œ๋ณด๋‹ค getResultList ๋ฉ”์„œ๋“œ๊ฐ€ ์„ ํ˜ธ๋ฉ๋‹ˆ๋‹ค.


๊ณ ๊ธ‰ HQL ์šด์˜

HQL์—์„œ Criteria ์‚ฌ์šฉํ•˜๊ธฐ

Criteria๋Š” ๋™์  ์ฟผ๋ฆฌ๋ฅผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์œผ๋กœ ์ •์˜ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜์—ฌ, ์ •์  HQL ๋ฌธ์ž์—ด์— ๋น„ํ•ด ๋” ๋งŽ์€ ์œ ์—ฐ์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

HQL์„ Spring๊ณผ ํ†ตํ•ฉํ•˜๊ธฐ

HQL์„ Spring ํ”„๋ ˆ์ž„์›Œํฌ์™€ ํ†ตํ•ฉํ•˜๋ฉด ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ ๋ฐ ์˜์กด์„ฑ ์ฃผ์ž…์ด ํ–ฅ์ƒ๋˜์–ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ฐ„์†Œํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌํ•˜๊ธฐ

ํŠธ๋žœ์žญ์…˜ ์‹œ์ž‘๊ณผ ์ปค๋ฐ‹

์ ์ ˆํ•œ ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ๋Š” ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ๊ณผ ์ผ๊ด€์„ฑ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

ํŠธ๋žœ์žญ์…˜ ๊ฒฝ๊ณ  ์ฒ˜๋ฆฌํ•˜๊ธฐ

"Local variable is not used"๊ณผ ๊ฐ™์€ ๊ฒฝ๊ณ ๋Š” ๋ณ€์ˆ˜๊ฐ€ ์„ ์–ธ๋˜์—ˆ์ง€๋งŒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์•˜์„ ๋•Œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ์˜ ๋ช…ํ™•์„ฑ๊ณผ ํšจ์œจ์„ฑ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋ชจ๋“  ๋ณ€์ˆ˜๊ฐ€ ๋ชฉ์ ์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.


์ผ๋ฐ˜์ ์ธ ์˜ค๋ฅ˜ ๋ฐ ๋ฌธ์ œ ํ•ด๊ฒฐ

์—”ํ‹ฐํ‹ฐ ์ด๋ฆ„ ์ดํ•ดํ•˜๊ธฐ

"from users"์™€ ๊ฐ™์ด "from Users" ๋Œ€์‹  ์‚ฌ์šฉํ•˜๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋น„์ •์ƒ์ ์œผ๋กœ ์ข…๋ฃŒ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. HQL ์ฟผ๋ฆฌ๊ฐ€ ์—”ํ‹ฐํ‹ฐ ํด๋ž˜์Šค์—์„œ ์ •์˜๋œ ์˜ฌ๋ฐ”๋ฅธ ์—”ํ‹ฐํ‹ฐ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”.

List ๋ณ€ํ™˜ ๊ฒฝ๊ณ  ํ•ด๊ฒฐํ•˜๊ธฐ

List์˜ ํƒ€์ž…์„ ๋ช…์‹œํ•˜์ง€ ์•Š์œผ๋ฉด ์ฒดํฌ๋˜์ง€ ์•Š์€ ๊ฒฝ๊ณ ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


๊ฒฐ๋ก 

์ด ๊ฐ€์ด๋“œ์—์„œ๋Š” Hibernate Query Language (HQL)์˜ ๊ธฐ๋ณธ ๊ฐœ๋…, ๊ณ ๊ธ‰ ์šด์˜ ๋ฐ ์‹ค์šฉ์ ์ธ ๊ตฌํ˜„์„ ๊นŠ์ด ํƒ๊ตฌํ–ˆ์Šต๋‹ˆ๋‹ค. Hibernate ์„ค์ •๋ถ€ํ„ฐ ๋ณต์žกํ•œ ์ฟผ๋ฆฌ ์‹คํ–‰๊นŒ์ง€, HQL์„ ์ˆ™๋‹ฌํ•จ์œผ๋กœ์จ ๊ฐ•๋ ฅํ•˜๊ณ  ํšจ์œจ์ ์ธ Java ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฃผ์š” ๋‚ด์šฉ

  • HQL์€ ๊ฐ์ฒด ์ง€ํ–ฅ์ž…๋‹ˆ๋‹ค: ์—”ํ‹ฐํ‹ฐ ๊ฐ์ฒด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘๋™ํ•˜์—ฌ ์ง๊ด€์ ์ธ ์ฟผ๋ฆฌ ์ž‘์„ฑ์„ ์šฉ์ดํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.
  • getResultList๊ฐ€ ์„ ํ˜ธ๋ฉ๋‹ˆ๋‹ค: Hibernate 5.2 ์ด์ƒ์—์„œ ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•ด getResultList๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.
  • ์ ์ ˆํ•œ ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ: ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ๊ณผ ์ผ๊ด€์„ฑ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.
  • ์„ธ๋ถ€ ์‚ฌํ•ญ์— ์ฃผ์˜: ์˜ฌ๋ฐ”๋ฅธ ์—”ํ‹ฐํ‹ฐ ์ด๋ฆ„ ์ง€์ •๊ณผ ์ผ๋ฐ˜ ํƒ€์ž… ์ฒ˜๋ฆฌ๋กœ ์ผ๋ฐ˜์ ์ธ ์˜ค๋ฅ˜๋ฅผ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.

HQL์„ ํ™œ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒํ˜ธ ์ž‘์šฉ์„ ๊ฐ„์†Œํ™”ํ•˜๊ณ  Hibernate ์ˆ™๋ จ๋„๋ฅผ ํ–ฅ์ƒ์‹œํ‚ค์„ธ์š”.

์ฐธ๊ณ : ์ด ๊ธฐ์‚ฌ๋Š” AI์— ์˜ํ•ด ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.






Share your love