yeonggonha1959
@yeonggonha1959
Reviews Written
1
Average Rating
5.0
Posts
Q&A
์ค์ฒฉ๋ fetch join
Spring data jpa์์ @EntityGraph ๋ฅผ ํตํด์๋ ํ๋์ด์์ ํ์๋ ๋ฒจ์ fetch join์ด ๊ฐ๋ฅํ๊ฐ์ ?
- 0
- 4
- 530
Q&A
์ค์ฒฉ๋ fetch join
๊ฐ์ฌํฉ๋๋ค.
- 0
- 4
- 530
Q&A
@Transactional๊ด๋ จ ์ง๋ฌธ ์ ๋๋ค.
ํ์ธ๋์์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
- 1
- 4
- 1.3K
Q&A
@Transactional๊ด๋ จ ์ง๋ฌธ ์ ๋๋ค.
๋ต๋ณ ๊ฐ์ฌํฉ๋๋ค. ์ฐ์ class์์ @Transactional์ ์ ๊ฑฐํ๊ณ Method์์๋ @Transactional์ด ์์ผ๋ฉด em.flush๊ฐ ์๋๊ณณ์์ ํ๊ธฐ์ ๊ฐ์ ์์ธ๋ฅผ ๋ฐ์์ํต๋๋ค. ์ด๊ฒ์ Transaction ๋ฐ์์ em.flush๋ฅผ ์ฌ์ฉํ๋ฉด ์๋๋ค๋ ์๋ฏธ๋ก ์๊ฐ๋ฉ๋๋ค. javax.persistence.TransactionRequiredException: No EntityManager with actual transaction available for current thread - cannot reliably process 'flush' call ์ง๋ฌธ1๋ฅผ ํ์ธํ๊ธฐ ์ํด ์ฐ์ em.flush๋ฅผ ๋ชจ๋ ์ญ์ ํ๊ณ ํ์ธ์ ํด๋ณด๋ A, B์ ๋์์ด ๊ฐ์๋๋ฐ makelist()์์ saveAll์ ํ๊ณ db์์ ๊ฐ์ ํ์ธํ ์ ์์๋๋ฐ ์ด๋ saveAll ๊ตฌํ์ฒด์์ @Transactional์ ์ฌ์ฉํด์ save ๊ฐ ์๋ฃ๋๋ฉด ํธ๋์ญ์ ์ด ์ข ๋ฃ๋์ด commit์ด ๋์๊ธฐ ๋๋ฌธ์ธ๊ฒ ๊ฐ์๋ฐ ๋ฌธ์ ๋ test1์ @Transactional์ด ๋ถ์ด ์์ผ๋ ์์ผ๋ save๊ฐ ๋๋ ์๊ฐ ๊ฐ์ด ์ ๋ฐ์ดํธ ๋จ์ ํ์ธํ์์ต๋๋ค. ์ ๊ฐ ์ ์ดํด๊ฐ ์๋๋๊ฒ test1 ๋ฉ์๋์ @Transactional์ ๋ถ์ด๋ฉด ๋ฉ์๋๊ฐ ์คํ๋๋ ์๊ฐ ํธ๋์ญ์ ์ด ๊ฑธ๋ฆฌ๊ณ ๋ฉ์๋๊ฐ ์ข ๋ฃ๋๋ ์๊ฐ ์ปค๋ฐ์ด ์ด๋ฃจ์ด์ ธ์ db์ ๋ฐ์๋์ด์ผ ํ ๊ฒ ๊ฐ์๋ฐ ํธ๋์ญ์ ์ด ์๊ฑธ๋ฆฌ๊ณ ์์ต๋๋ค. (save๋ฅผ ๋นผ๋ ๋ณ๊ฒฝ๊ฐ์ง๋ก db๊ฐ ์๋์ผ๋ก ์ ๋ฐ์ดํธ ๋์ง๋ ์์ต๋๋ค. ) package study.querydsl.repository;import org.junit.jupiter.api.Test;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.test.annotation.Rollback;import org.springframework.transaction.annotation.Transactional;import study.querydsl.entity.Member;import java.util.ArrayList;import java.util.List;@SpringBootTest@Rollback(false)class MemberRepositoryTest {// @PersistenceContext// private EntityManager em; @Autowired private MemberRepository memberRepository; @Test public void test() throws InterruptedException { List members = makeList(); for (Member member : members) { test1(member.getId()); Thread.sleep(1000); } } private List makeList() throws InterruptedException { List members = new ArrayList(); for (int i = 0 ; i 20 ; i++) { Member member = new Member("gon " + i, i); members.add(member); } memberRepository.saveAll(members); Thread.sleep(5000); return members; } @Transactional protected void test1(Long id) { Member member = memberRepository.findById(id).get(); member.setUsername("Park"); memberRepository.save(member); System.out.println("temp"); }} ์ ๊ทธ๋ฐ๊ฑด๊ฐ์ ใ
- 1
- 4
- 1.3K




