๋ฒ ์˜ค
DCode
๋ฒ ์˜ค
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (218)
    • ๊ณต์ง€์‚ฌํ•ญ (1)
    • ์žก์„ค (1)
    • Programming (33)
      • [C] (1)
      • [Java] (4)
      • [Python] (2)
      • [Android] (2)
      • [Network] (0)
      • [Operation System] (2)
      • [Spring Boot] (22)
      • [Docker] (0)
    • Algorithm (31)
      • ์ž๋ฃŒ๊ตฌ์กฐ (2)
      • ์•Œ๊ณ ๋ฆฌ์ฆ˜ (Java) (14)
      • ์•Œ๊ณ ๋ฆฌ์ฆ˜ (๊ธฐ์ดˆ) (15)
    • Coding Test (131)
      • BOJ (131)
      • Algospat (0)
    • ์ด๋ก ์ ์ธ๊ฑฐ (14)
      • ๋ณด์•ˆ (5)
      • ์˜ค๋ฅ˜ ํ•ด๊ฒฐ (2)
      • ๋””์ž์ธ ํŒจํ„ด (5)
      • ๋„คํŠธ์›Œํฌ (1)
      • ๊ธฐํƒ€ (1)
    • ์ตœ์‹ ๊ธฐ์ˆ  (4)
      • ๋ธ”๋ก์ฒด์ธ (1)
    • [Project] (1)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ๐Ÿˆโ€โฌ› GitHub
  • ๐Ÿ“ซ ๋ฐฉ๋ช…๋ก
  • ๐Ÿ”– ํƒœ๊ทธ

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
๋ฒ ์˜ค

DCode

Programming/[Spring Boot]

Spring Data JPA ํ™œ์šฉํ•˜๊ธฐ

2023. 3. 29. 21:06

JPQL (JPA Query Language)

๐Ÿ’ก
JPA์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ฟผ๋ฆฌ

ํ…Œ์ด๋ธ”์ด๋‚˜ ์ปฌ๋Ÿผ์˜ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๊ณผ ๋‹ฌ๋ฆฌ, Entity ๊ฐ์ฒด๋ฅผ ๋Œ€์ƒ์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๋Š” ์ฟผ๋ฆฌ ๋งคํ•‘๋œ Entity์˜ ์ด๋ฆ„๊ณผ ํ•„๋“œ์˜ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•œ๋‹ค.

SELECTโ€…โ€Špโ€…โ€ŠFROMโ€…โ€ŠProductโ€…โ€Špโ€…โ€ŠWHEREโ€…โ€Šp.number=?1;SELECT \;p\;FROM\;Product\;p\;WHERE\;p.number=?1;SELECTpFROMProductpWHEREp.number=?1;

์œ„๋Š” JPQL ์ฟผ๋ฆฌ์˜ ๊ธฐ๋ณธ๊ตฌ์กฐ์ด๋‹ค.

  • Product๋Š” Entity ํƒ€์ž…์„ ์˜๋ฏธํ•œ๋‹ค.
  • p๋Š” Entity๋ฅผ ์˜๋ฏธํ•œ๋‹ค.
  • p.number๋Š” Entity์˜ ์†์„ฑ์„ ์˜๋ฏธํ•œ๋‹ค.

์ฟผ๋ฆฌ ๋ฉ”์„œ๋“œ

JpaRepository๋กœ ๋‹จ์ˆœ CRUD ์—ฐ์‚ฐ์€ ๊ฐ€๋Šฅํ–ˆ๋‹ค.

ํ•˜์ง€๋งŒ, ์ข€ ๋” ๋ณต์žกํ•œ ์ฟผ๋ฆฌ์˜ ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ๋งŒ๋“ค์–ด์•ผํ•œ๋‹ค.

์ผ๋‹จ JpaRepository์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ฐ„๋‹จํ•œ ์ฟผ๋ฆฌ๋ฌธ์„ ์•Œ์•„๋ณด์ž

์ฟผ๋ฆฌ ๋ฉ”์„œ๋“œ ์ƒ์„ฑ

์ฟผ๋ฆฌ ๋ฉ”์„œ๋“œ๋Š” ํฌ๊ฒŒ ๋‹ค์Œ ๋‘๊ฐ€์ง€๋กœ ๋‚˜๋‰œ๋‹ค.

  • ์ฃผ์ œ(Subject)
    • findโ€ฆBy
    • exsitsโ€ฆBy
  • ์„œ์ˆ ์–ด(Predicate)
    • By์ดํ›„๊ฐ€ ์„œ์ˆ ์–ด์˜ ์œ„์น˜
    • AND, OR์„ ์ด์šฉํ•˜์—ฌ ์กฐ๊ฑด ํ™•์žฅ ๊ฐ€๋Šฅ

์ฟผ๋ฆฌ ๋ฉ”์„œ๋“œ ์ƒ์„ฑ ์˜ˆ

List<Person> findByLastnameAndEmail(String lastName, String email);

์œ„ ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด๋ฉด

  • ๊ฒฐ๊ณผ๊ฐ’์€ Person ํƒ€์ž…์˜ Entity ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ฐ›๋Š”๋‹ค.
  • ๋ฉ”์„œ๋“œ๋ช…์€ lastName๊ณผ email๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ๋Š”๋‹ค.
  • ์ธ์ž๋Š” lastName(String)๊ณผ email(String)์„ ๋ฐ›๋Š”๋‹ค.

์„œ์ˆ ์–ด(By ์ดํ›„ ์“ฐ์ธ ๋ถ€๋ถ„)์€ Entity์—์„œ ๊ด€๋ฆฌํ•˜๊ณ  ์žˆ๋Š” ์†์„ฑ๋งŒ ์ฐธ์กฐ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.



Uploaded by N2T

'Programming > [Spring Boot]' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Spring Data JPA] - JPA Auditing  (0) 2023.03.30
[Spring Data JPA] - ์ •๋ ฌ๊ณผ ํŽ˜์ด์ง• ์ฒ˜๋ฆฌ  (0) 2023.03.30
[Spring Data JPA] - ์ฟผ๋ฆฌ ๋ฉ”์„œ๋“œ์˜ ์ฃผ์ œ(Subject) ํ‚ค์›Œ๋“œ  (0) 2023.03.29
[Spring Data JPA] - ์ฟผ๋ฆฌ ๋ฉ”์„œ๋“œ์˜ ์กฐ๊ฑด์ž ํ‚ค์›Œ๋“œ  (0) 2023.03.29
ํ…Œ์ŠคํŠธ ์ฃผ๋„ ๊ฐœ๋ฐœ(TDD)  (0) 2023.03.16
    'Programming/[Spring Boot]' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [Spring Data JPA] - JPA Auditing
    • [Spring Data JPA] - ์ •๋ ฌ๊ณผ ํŽ˜์ด์ง• ์ฒ˜๋ฆฌ
    • [Spring Data JPA] - ์ฟผ๋ฆฌ ๋ฉ”์„œ๋“œ์˜ ์ฃผ์ œ(Subject) ํ‚ค์›Œ๋“œ
    • [Spring Data JPA] - ์ฟผ๋ฆฌ ๋ฉ”์„œ๋“œ์˜ ์กฐ๊ฑด์ž ํ‚ค์›Œ๋“œ
    ๋ฒ ์˜ค
    ๋ฒ ์˜ค

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”