nujkat0310
@nujkat0310
Reviews Written
27
Average Rating
4.6
Posts
Q&A
์ฌ์ฉ์ ์ ์ ๋ฆฌํฌ์งํ ๋ฆฌ์์ ๋ณ๊ฒฝ์ด ์ผ์ด๋๋ ๊ฒฝ์ฐ @Transactional์ ๋ถ์ฌ์ค์ผ ํ๋์?
์๋ฌ ๋ฉ์ธ์ง๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. Executing an update/delete query; nested exception is javax.persistence.TransactionRequiredException: Executing an update/delete query jpql๋ก ๋ณ๊ฒฝ์ ์ฒ๋ฆฌํ ๊ฒฝ์ฐ์๋ ๋ง์ํ์ ๊ฒ์ฒ๋ผ repository ๊ณ์ธต์์ ๋ฐ๋ก @Transactional์ ๋ถ์ฌ์ฃผ์ง ์์๋ ์ ๋์ํฉ๋๋ค. native query๋ฅผ ์ด์ฉํ ๋ถ๋ถ์์๋ง ์ ์๋ฌ๊ฐ ๋ฐ์ํ๊ณ ์์ต๋๋ค.
- 0
- 5
- 922
Q&A
์ฌ์ฉ์ ์ ์ ๋ฆฌํฌ์งํ ๋ฆฌ์์ ๋ณ๊ฒฝ์ด ์ผ์ด๋๋ ๊ฒฝ์ฐ @Transactional์ ๋ถ์ฌ์ค์ผ ํ๋์?
๋น ๋ฅธ ๋ต๋ณ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ๋ถ๋ช ํ ์๋น์ค ๊ณ์ธต์์ ๋ถ์ฌ์คฌ์๋๋ฐ๋ ๋ถ๊ตฌํ๊ณ ์๋ฌ๊ฐ ๋ฐ์ํด์ Custom Repository ๋ฉ์๋์๋ ์ถ๊ฐ๋ก @Transactional์ ๋ถ์ฌ์คฌ์์ต๋๋ค. - ์๋น์ค ๊ณ์ธต ์ฝ๋ @Transactionalpublic void saveCallMessages(String senderIp, String cid, List messages) { ... callMessageRepository.bulkInsert(callMessages);} - Repository ๊ณ์ธต ์ฝ๋ @Override@Transactionalpublic int bulkInsert(List messages) { StringBuilder sb = new StringBuilder("insert into call_messages ( ... ) values "); ... em.createNativeQuery(sb.toString()).executeUpdate(); return messages.size();} ์๋ฌ ๋ฉ์ธ์ง๋ฅผ ๋ณต์ฌํด ๋์์ด์ผ ํ๋๋ฐ ์ฃ์กํฉ๋๋คใ ใ
- 0
- 5
- 922
Q&A
@GeneratedValue(IDENTITY) ํ์ ์ Id๋ฅผ ๊ฐ์ง ์ํฐํฐ์ Bulk Insert๋ ๋ถ๊ฐ๋ฅํ๊ฐ์?
๋ต๋ณ ๊ฐ์ฌํฉ๋๋ค. ์ฐ์ ์ pk๋ฅผ ์๋์์ฑ์ผ๋ก ๋ฐ๊พธ๊ณ ๋ค์ดํฐ๋ธ ์ฟผ๋ฆฌ๋ก ํด๊ฒฐํด ๋จ์๋๋ฐ, insert select๋ ์ฐพ์๋ด์ผ๊ฒ ์ต๋๋ค.
- 0
- 2
- 295
Q&A
Entity์ ๋ก์ง์ ๊ตฌํํ๋ ๊ฒฝ์ฐ์ ๊ณ ๋ฏผ์ ๋๋ค.
๋น ๋ฅด๊ณ ๋ช ์พํ ๋๋ต ๊ฐ์ฌํฉ๋๋ค~!
- 0
- 9
- 418
Q&A
Entity์ ๋ก์ง์ ๊ตฌํํ๋ ๊ฒฝ์ฐ์ ๊ณ ๋ฏผ์ ๋๋ค.
์ถ๊ฐ ์ง๋ฌธ์ด ์์ต๋๋ค. getMembers().forEach( m.leaveTeam() ) ๊ฐ์ ๊ฒฝ์ฐ๋ฅผ Bulk update๋ฅผ ํ๊ณ ์ถ์ผ๋ฉด, ๊ฒฐ๊ตญ ์ด ๋ถ๋ถ์ ๋ก์ง์์ ๋น ์ง๊ณ ์ธ๋ถ์์ ๋ณ๋๋ก ์ฒ๋ฆฌ๋ฅผ ํด์ผ ํ ๊น์? JPA๋ก ๊ฐ๋ฉด์ DDD๊น์ง ๊ณต๋ถ๊ฐ ํ์ํด์ง๋ ๊ฒ ๊ฐ์์ ์ด๋ ค์ด ๋ถ๋ถ๋ ์๋ค์ใ ใ
- 0
- 9
- 418
Q&A
Entity์ ๋ก์ง์ ๊ตฌํํ๋ ๊ฒฝ์ฐ์ ๊ณ ๋ฏผ์ ๋๋ค.
์~~ ๊ทธ๋ ๊ตฐ์. ์ ํํ ์ค๋ช ๊ฐ์ฌํฉ๋๋ค~!
- 0
- 9
- 418
Q&A
Entity์ ๋ก์ง์ ๊ตฌํํ๋ ๊ฒฝ์ฐ์ ๊ณ ๋ฏผ์ ๋๋ค.
์, ๊ทธ๋ฌ๋ฉด Team์์ getMembers().forEach๋ก ๋๋ ค๋ ๊ทธ Member๋ค์ ์์์ฑ ์ปจํ ์คํธ ๊ฐ์ฒด๋ฅผ ์ป์ด์ค๊ณ , changeTeam์ผ๋ก ๊ฐ ๋ณ๊ฒฝ์ด ๊ฐ๋ฅํ๊ฑด๊ฐ์? ์ ์ดํดํ๋ฉด์ ๋ฐ๋ผ์๋ค๊ณ ์๊ฐํ๋๋ฐ ๋ ํท๊ฐ๋ฆฌ๋ค์. Team์ members๋ mappedBy๋ผ๊ณ ๊ฐ์ ํ์ ๋, ์ฝ๊ธฐ๋ง ๊ฐ๋ฅํ๊ฑฐ๋ผ๊ณ ์ดํดํ์๊ฑฐ๋ ์.
- 0
- 9
- 418
Q&A
Entity์ ๋ก์ง์ ๊ตฌํํ๋ ๊ฒฝ์ฐ์ ๊ณ ๋ฏผ์ ๋๋ค.
๋ค๋ฅธ ์ง๋ฌธ์ ์ฌ๊ธฐ์ ์ด์ด์ ํ๊ณ ์ ํฉ๋๋ค. Member -> Team ๋จ๋ฐฉํฅ N:1 ๊ด๊ณ๋ผ๊ณ ๊ฐ์ ํ๊ณ , Team์์ ํด๋น ํ์ ๋นํ์ฑํํ๋ disable()์ด๋ผ๋ ๋ฉ์๋๋ฅผ ๋ง๋ค๊ณ ์ ํฉ๋๋ค. ์ด ๋, ํ์ Member๋ค์ team์ ๋ชจ๋ null๋ก ๋ณ๊ฒฝํ๊ณ ์ ํ๋๋ฐ, ๋ก์ง ์ฒ๋ฆฌ๋ฅผ ์ด๋์ ์ด๋ป๊ฒ ํ๋ ๊ฒ์ด ์ข์ ๊ตฌ์กฐ์ธ์ง ๊ถ๊ธํฉ๋๋ค. ์๋ฐฉํฅ ๊ด๊ณ๋ก ๋ฐ๊พผ๋ค๊ณ ํด๋ Team์ ์ฐ๊ด๊ด๊ณ์ ์ฃผ์ธ์ด ์๋๊ธฐ ๋๋ฌธ์, Team์ getMembers()๋ฅผ iterationํ๋ฉด์ member.changeTeam(null)์ ํ๋๊ฑด ๋ง์ง ์์ ๊ฒ ๊ฐ์ต๋๋ค.
- 0
- 9
- 418
Q&A
Entity์ ๋ก์ง์ ๊ตฌํํ๋ ๊ฒฝ์ฐ์ ๊ณ ๋ฏผ์ ๋๋ค.
์๋ฌธ์๋ต์ ๋๋ค. oldTeam์ member.getTeam()์ผ๋ก ๋ฐ๋ ์๊ฐ, ํด๋น ํ๋ ์์์ฑ ์ปจํ ์คํธ์์ ๊ฐ์ ธ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
- 0
- 9
- 418
Q&A
Member์ Order๊ฐ์ ์๋ฐฉํฅ ๊ด๋ จ ์ง๋ฌธ์ ๋๋ค
์ ๊ทธ๋ ๋ค์~ ๊ฐ์ฒด๋ฅผ ํตํ ์ ๊ทผ๋ง ์๊ฐํ๋ค๋ณด๋, Order๋ ์ด๋ป๊ฒ ์ป์ด์ค์ง ํ๋ ์๊ฐ๋ง ํ๊ณ , EntityManager๋ฅผ ์ ์ ์๊ณ ์์์ต๋๋คใ ใ ๊ฐ์ฌํฉ๋๋ค.
- 16
- 4
- 469




