JPQL (JPA Query Language)
๐ก
JPA์์ ์ฌ์ฉํ ์ ์๋ ์ฟผ๋ฆฌ
ํ ์ด๋ธ์ด๋ ์ปฌ๋ผ์ ์ด๋ฆ์ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๋ฌ๋ฆฌ, Entity ๊ฐ์ฒด๋ฅผ ๋์์ผ๋ก ์ํํ๋ ์ฟผ๋ฆฌ ๋งคํ๋ Entity์ ์ด๋ฆ๊ณผ ํ๋์ ์ด๋ฆ์ ์ฌ์ฉํ๋ค.
์๋ 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 |