์ฟผ๋ฆฌ ๋ฉ์๋๋ SQL์์ ์ฌ์ฉํ๋ ํค์๋์ ์ปฌ๋ผ์ ๊ฒฐํฉํด ๊ตฌ์ฑํ์ฌ ๊ทธ ์์ฒด๊ฐ JPA์์ ์ฌ์ฉํ๋ ์ฟผ๋ฆฌ๊ฐ ๋๋๋ก ๋ง๋๋ ๊ธฐ๋ฅ์ด๋ค. ์ผ๋ฐ์ ์ผ๋ก `findById` ์ฒ๋ผ ์ปฌ๋ผ๋ช ๊ณผ ํค์๋๋ฅผ ์กฐํฉํ์ฌ ๊ตฌ์ฑํ๋ค.
์๋ ๊ธ์ ์ฐธ๊ณ
Spring Data JPA(์ฟผ๋ฆฌ ๋ฉ์๋)
Spring Data JPA๋ก ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ๋ค์ ์์๋ณด๊ฒ ์ต๋๋ค. • ๋ฉ์๋ ์ด๋ฆ์ผ๋ก ์ฟผ๋ฆฌ ์์ฑ ์ฟผ๋ฆฌ ๋ฉ์๋๋ Repository ์ธํฐํ์ด์ค์ ๊ฐ๋จํ ๋ค์ด๋ฐ ๋ฃฐ์ ์ด์ฉํ์ฌ ๋ฉ์๋๋ฅผ ์์ฑํ๋ฉด ์ํ๋ ์ฟผ๋ฆฌ๋ฅผ
kihwan95.tistory.com
์๋ฅผ ๋ค์ด ์ ๋ชฉ์ ํน์ ํค์๋๊ฐ ์กด์ฌํ๋ ๊ฒ์๊ธ์ bno์ ์ญ์์ผ๋ก ์ ๋ ฌํ์ฌ ๊ฐ์ ธ์ค๊ณ ์ถ๋ค๋ฉด ์ฟผ๋ฆฌ ๋ฉ์๋๋ ๋ค์๊ณผ ๊ฐ๋ค.
Page<Board> findByTitleContainingOrderByBnoDesc(String keyword, Pageable pageable);
์ด์ฒ๋ผ ์ํ๋ ๋ฐฉ์๋๋ก SQL์ ์๋ํ ์ ์๋ ๋งค๋ ฅ์ ์ธ ๊ธฐ๋ฅ์ด์ง๋ง ์ค์ ๋ก ์ฌ์ฉํ๋ ค๋ฉด ๋ฉ์๋๋ช ์ด ์ง๋์น๊ฒ ๊ธธ์ด์ง๊ฑฐ๋ ๋ณต์กํด์ง๋ค. ๊ทธ ์ด์ ๋ก ์ค์ ๊ฐ๋ฐ์์๋ ๋ง์ด ์ฌ์ฉ๋์ง ์๋๋ค.
์ด๋ฅผ ๋ณด์ํ๋ `@Query` ์ ๋ํ ์ด์ ์ด ์๋ค. `@Query`๋ก JPQL์ ์ด์ฉํ์ฌ SQL๊ณผ ์ ์ฌํ๊ฒ ์ฌ์ฉํ ์ ์๋ค.
์์์ ์๋ก ๋ค์๋ `findByTitleContainingOrderByBnoDesc()`๋ฅผ `@Query`๋ก ์์ฑํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
@Query("select b from Board b where b.title like concat('%', :keyword, '%')")
Page<Board> findKeyword(String keyword, Pageable pageable);
๐์ฅ์
1. ์กฐ์ธ๊ณผ ๊ฐ์ด ๋ณต์กํ ์ฟผ๋ฆฌ๋ฅผ ์คํํ ์ ์๋ค.
2. ์ํ๋ ์์ฑ๋ง ์ถ์ถํด์ DTO๋ก ์ฒ๋ฆฌํ ์ ์๋ค.
3. nativeQuery ์์ฑ ๊ฐ์ true๋ก ์ง์ ํ์ฌ ํน์ ๋ฒ ์ดํฐ๋ฒ ์ด์ค์์ ๋์ํ๋ SQL์ ์์ฑํ ์ ์๋ค.
'Java > Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[SpringBoot/JPA] ModelMapper๋ก Entity์ DTO ๋ณํํ๊ธฐ (0) | 2024.03.13 |
---|---|
[SpringBoot/JPA] Querydsl์ ์ฌ์ฉํ ๋์ ์ฟผ๋ฆฌ (0) | 2024.03.12 |
[Spring/JPA] Spring Data JPA๋ก ํ์ด์ง ์ฒ๋ฆฌํ๊ธฐ (1) | 2024.03.12 |
[SpringBoot/JPA] Spring Data JPA๋ฅผ ์ฌ์ฉํ ๊ฒ์ํ CRUD (0) | 2024.03.12 |
[SpringBoot] Querydsl ์ค์ ์ ์ค๋ฅ (0) | 2024.03.11 |