์ผ๋ฐ์ ์ธ ๊ฒฝ์ฐ์๋ ๊ฐ๋จํ ์ฒ๋ฆฌ๋ง ์ฟผ๋ฆฌ ๋ฉ์๋๋ฅผ ์ด์ฉํ๊ณ ,
@Query๋ฅผ ์ด์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋ ๋ง์ต๋๋ค.
@Query์ ๊ฒฝ์ฐ๋ ๋ฉ์๋์ ์ด๋ฆ๊ณผ ์๊ด์์ด ๋ฉ์๋์ ์ถ๊ฐํ ์ด๋ ธํ ์ด์ ์ ํตํด
๋ฉ์๋์ ์ถ๊ฐํ ์ด๋ ธํ ์ด์ ์ ํตํด์ ์ํ๋ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
@Query์ value๋ JPQL๋ก ์์ฑํ๋๋ฐ ํํ '๊ฐ์ฒด์งํฅ ์ฟผ๋ฆฌ'๋ผ๊ณ ๋ถ๋ฆฌ๋ ๊ตฌ๋ฌธ๋ค์ ๋๋ค.
@Query๋ฅผ ์ด์ฉํด์๋ ๋ค์๊ณผ ๊ฐ์ ์์ ์ ์คํํ ์ ์์ต๋๋ค.
- ํ์ํ ๋ฐ์ดํฐ๋ง ์ ๋ณ์ ์ผ๋ก ์ถ์ถํ๋ ๊ธฐ๋ฅ์ด ๊ฐ๋ฅ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ง๋ ์์ํ SQL์ ์ฌ์ฉํ๋ ๊ธฐ๋ฅ
- insert, update, delete์ ๊ฐ์ select๊ฐ ์๋ DML ๋ฑ์ ์ฒ๋ฆฌํ๋ ๊ธฐ๋ฅ
๊ฐ์ฒด์งํฅ์ฟผ๋ฆฌ๋ ํ ์ด๋ธ ๋์ ์
์ํฐํฐํด๋์ค๋ฅผ ์ด์ฉํ๊ณ ,
ํ ์ด๋ธ์ ์นผ๋ผ ๋์ ์ ํด๋์ค์ ์ ์ธ๋ ํ๋๋ฅผ ์ด์ฉํด์ ์์ฑํฉ๋๋ค.
JPQL์ SQL๊ณผ ์๋นํ ์ ์ฌํ๊ธฐ ๋๋ฌธ์ ๊ฐ๋จํ ๊ธฐ๋ฅ์ ์ ์ํ๋ ๊ฒฝ์ฐ์๋ ์ถ๊ฐ์ ์ธ ํ์ต ์์ด๋
์ ์ฉ์ด ๊ฐ๋ฅํฉ๋๋ค.
์๋ฅผ๋ค์ด 'mno์ ์ญ์์ผ๋ก ์ ๋ ฌํ๋ผ'๋ผ๋ ๊ธฐ๋ฅ์ @Query๋ฅผ ์ด์ฉํด์ ์ ์ํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ํํ๊ฐ ๋ฉ๋๋ค.
@Query("select m from Memo m order by m.mno desc")
List<Memo> getListDesc();
JPQL์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ ์ด๋ธ ๋์ ์ ์ํฐํฐํด๋์ค์ ๋ฉค๋ฒ๋ณ์๋ฅผ ์ด์ฉํด์ SQL๊ณผ ๋น์ทํ JPQL์ ์์ฑํฉ๋๋ค.
@Query์ ํ๋ผ๋ฏธํฐ ๋ฐ์ธ๋ฉ
@Query์ ๊ฒฝ์ฐ ์ง์ SQL๊ณผ ์ ์ฌํ ํํ๋ก ์์ฑ๋๊ธฐ ๋๋ฌธ์
'where'๊ตฌ๋ฌธ๊ณผ ๊ทธ์ ๋ง๋ ํ๋ผ๋ฏธํฐ๋ค์ ์ฒ๋ฆฌํ ๋๊ฐ ๋ง์ต๋๋ค.
์๋ฅผ ๋ค์ด ':ํ๋ผ๋ฏธํฐ'๋ฅผ ์ด์ฉํ๋ ๋ฐฉ์์ ๋ค์๊ณผ ๊ฐ์ด ์ฌ์ฉํ ์ ์์ต๋๋ค.
@Transactional
@Modifying
@Query("update Memo m set m.memoText = :memoText where m.mno = :mno ")
int updateMemoText(@Param("mno") Long mno, @Param("memoText") String memoText);
Chapter 03 | ์คํ๋ง MVC์ Thymeleaf
3์ฅ์์๋ ์ค์ ํ๋ฉด์ ๊ตฌ์ฑํ๊ธฐ ์ํ ์คํ๋ง MVC์ค์ ๊ณผ Thymeleaf๋ผ๋ ๊ธฐ์ ์ ๋ฐฐ์๋๋ค.
์ด๋ฒ์ฅ์์ ํ์ตํ๋ ๋ด์ฉ
: Thymeleaf๋ฅผ ์ด์ฉํ ํ๋ฉด ์ถ๋ ฅ๊ณผ ๋ฐ๋ณต, ์ ์ด ์ฒ๋ฆฌ
: ๊ธฐ๋ณธ ๊ฐ์ฒด๋ฅผ ์ด์ฉํด์ ๋ ์ง, ์๊ฐ ์ฒ๋ฆฌํ๊ธฐ
: ๋ ์ด์์ ๊ธฐ๋ฅ์ ํ์ฉํ์ฌ ํ ํ๋ฆฟ ๊ตฌ์ฑํ๊ธฐ
3.1 Thymelaf๋ฅผ ์ฌ์ฉํ๋ ํ๋ก์ ํธ ์์ฑ
Thymleaf๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํ๋ก์ ํธ ์์ฑ ์์ ์ถ๊ฐ๋๋ templates ํด๋๋ฅผ ๊ธฐ๋ณธ์ผ๋ก ์ฌ์ฉํ๋ฏ๋ก
templates ํด๋ ๋ด์ sample ํด๋๋ฅผ ์์ฑํ๊ณ ex1.htmlํ์ผ์ ์ถ๊ฐํฉ๋๋ค.
Thymeleaf์ ๊ธฐ๋ณธ์ ์ธ ์ฌ์ฉ ๋ฐฉ๋ฒ์ ๊ธฐ์กด์ ์์ฑ ์์ 'th:'๋ฅผ ๋ถ์ฌ์ฃผ๊ณ
์์ฑ๊ฐ์ ์ง์ ํ๋ ๊ฒ
'Spring > ๐ฅ[spring]์ฝ๋๋ก ๋ฐฐ์ฐ๋ ์คํ๋ง ๋ถํธ ์น ํ๋ก์ ํธ_๊ตฌ๋ฉ๊ฐ๊ฒ ์ฝ๋ฉ๋จ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
3.4.3 ๋ถํธ์คํธ๋ฉ ํ ํ๋ฆฟ ์ ์ฉํ๊ธฐ (0) | 2023.02.05 |
---|---|
3.2 Thymeleaf์ ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ (0) | 2023.02.04 |
2.6 ์ฟผ๋ฆฌ ๋ฉ์๋(Query Methods)๊ธฐ๋ฅ๊ณผ @Query (0) | 2023.01.30 |
2.5 ํ์ด์ง/ ์ ๋ ฌ ์ฒ๋ฆฌํ๊ธฐ (0) | 2023.01.29 |
2.4.3 JpaRepository ์ธํฐํ์ด์ค (0) | 2023.01.29 |