테스트 데이터 초기화시 @Transactional 문제 발생 원인에 대해 알고 싶습니다.
197
작성한 질문수 3
package com.project.springproject;
import com.project.springproject.dto.MemberDto;
import com.project.springproject.repository.MemberRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.PostConstruct;
@Component
@RequiredArgsConstructor
public class TestDataInit {
private final InitService initService;
@PostConstruct
public void init() {
initService.initMember();
}
@Component
@Transactional
@RequiredArgsConstructor
static class InitService {
private final MemberRepository memberRepository;
public void initMember() {
MemberDto memberDto = new MemberDto();
memberDto.setLoginId("test");
memberDto.setPassword("1234");
memberDto.setName("테스터");
memberDto.setAddress("서울");
memberRepository.save(memberDto.toEntity());
}
}
}
package com.project.springproject.repository;
import com.project.springproject.domain.Member;
import org.springframework.stereotype.Repository;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import java.util.List;
@Repository
public class MemberRepository {
@PersistenceContext
private EntityManager em;
public void save(Member member){
em.persist(member);
}
public Member findById(Long id){
return em.find(Member.class, id);
}
public List<Member> findAll(){
return em.createQuery("select m from Member m", Member.class)
.getResultList();
}
public List<Member> findByLoginId(String loginId){
return em.createQuery("select m from Member m where m.loginId = :loginId", Member.class)
.setParameter("loginId", loginId)
.getResultList();
}
}
위 코드에서 initMember()를 public으로 실행 시 문제가 되지 않는데 private로 설정 시 다음과 같은 오류가 발생합니다.
이에 대한 오류가 왜 발생하는지 이해가 되지 않아 질문 올립니다.
답변 1
이미지 업로드와 db 트랜잭션 묶는법
0
67
1
Could not resolve org.springframework.boot:spring-boot-starter-validation:2.4.4
0
92
2
MessageSourceTest 코드
0
67
1
인터셉터 에러 설정
0
66
1
resolveArgument()메서드 질문
0
71
1
43강 검증1 에서 실패 로직 관련 질문있습니다.
0
81
2
타임리프 3.X 버전 rendering, serializer 에러 해결 방법
2
154
3
스프링 빈에 등록이 안되는거 같은데 어떻게 하면 좋을까요?ㅠㅠ
0
121
3
pdf 오타 문의
0
63
1
ItemUpdateForm 검증 관련 질문입니다.
0
62
1
22page 링크 주소 변경
0
69
2
특정 데이터와 파일을 함께 저장 시, 테이블 구조 질문
0
61
1
섹션3번 수업에 대한 질문입니다.
0
98
2
@Autowired 보다 더 좋은 방법이 어떤 걸까요?
0
97
2
타입컨버터 가 람다랑 비슷해 보이는데 저의 생각이 맞는지?.
0
81
1
자바스크립트 인라인에서 객체 직렬화 시 오류가 납니다
0
159
3
스프링부트 - 오류페이지2 에서 500.html 에서 쓰인 객체 질문
0
79
1
톰캣 에러 페이지가 안보입니다.
0
120
2
apiEceptionController에서 센드 에러 호출하면 안되는지?
0
91
1
세션 타임아웃시 쿠키 삭제 방법이 없나요?
0
134
2
ApiExceptionController 질문드립니다.
0
71
1
셀렉박스 챕터에서 option value에 ==배송 방식 선택== 이것을 넣은 이유가 궁금함, 이렇게 구상해도 되는지?
0
69
1
MemberRepository 필드의 fianl 선언 유무
0
92
2
혹시 index.html 에서는 fragment 사용이 안되는건가요
0
64
1





