2022. 12. 8. 23:34ใBackend/๐ฟ Spring
์๋ฌ ๋ฉ์์ง: Caused by: java.sql.SQLException: Can not issue data manipulation statements with executeQuery().
์์ธ: @Modifying(clearAutomatically = true) ๋ฏธ์ฌ์ฉ
`update, delete, insert`
์ฟผ๋ฆฌ๋ ๋ฆฌํด๊ฐ์ ๊ฐ์ง ์๊ธฐ ๋๋ฌธ์ ๋ฐ์ํ๋ ์๋ฌ.
Jpa ์์ `select Query` ๋ฅผ ๋ณด๋ผ ๋ `executeQuery()` ๋ฅผ ์ฌ์ฉํ์ง๋ง, `update, delete, insert`
๋ฑ์ ์ฟผ๋ฆฌ๋ฅผ ๋ณด๋ผ ๋, executeUpdate() ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ค. executeUpdate() ๋ ์ฟผ๋ฆฌ๋ฅผ ์ ์กํด์ ๋ณ๊ฒฝ๋ ํ์ ๊ฐ์๋ฅผ ๋ฆฌํดํ๋ค.
JPA ์ฟผ๋ฆฌ ๋ฉ์๋ ์ฌ์ฉ์, @Modifying
์ด๋
ธํ
์ด์
์ ๋ถ์ด์ง ์์ผ๋ฉด ๊ฒฐ๊ณผ๊ฐ ์๋ต์ ๊ธฐ๋ํ๋ executeQuery() ํจ์๋ฅผ ์ฌ์ฉํ๋ค. ๋ฐ๋ผ์ `update, delete, insert`
ํธ๋์ญ์
์ JPA ์์ ์ฌ์ฉํ๋ ค๋ฉด executeUpdate() ํจ์๋ฅผ ์ฌ์ฉํ๋๋ก @Modifying ์ด๋
ธํ
์ด์
์ ๋ถ์ฌ์ผ ํ๋ค.
์์ ์ด๋ฏธ์ง์์ @Modifying ์ด๋ ธํ ์ด์ ์ด ์ฃผ์์ฒ๋ฆฌ ๋๊ธฐ ๋๋ฌธ์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค. ํด๋น ์ด๋ ธํ ์ด์ ์ ์ฃผ์ ํด์ ํ๋ฉด executeSelect() ๋์ executeUpdate() ๋ฉ์๋๊ฐ ์คํ๋๋ค.
Todo : JPA ๋ด๋ถ์์ executeSelect(), executeUpdate() ๋ฉ์๋๊ฐ ์ด๋ค ์๋ฆฌ๋ก ๋์ํ๋์ง ํ์ธ ํ์.