이코드에서 질문 있는데 우선 상황은
machineService 모든 함수에 @Transactional 붙어 있고, 해당 테스트 클래스 파일에도 붙어 있음
@Transactional 을 없애면 테스트 통과하길래 트랜잭션 전파 관련 문제인가보다 생각하고 있음
jpa 가 machineService.create() 했던게 논리 트랜잭션에 포함되서 commit을 안해서 find 시에 machine.getId()가 null 반환 하는게 맞음?
이코드에서 질문 있는데 우선 상황은
machineService 모든 함수에 @Transactional 붙어 있고, 해당 테스트 클래스 파일에도 붙어 있음
@Transactional 을 없애면 테스트 통과하길래 트랜잭션 전파 관련 문제인가보다 생각하고 있음
jpa 가 machineService.create() 했던게 논리 트랜잭션에 포함되서 commit을 안해서 find 시에 machine.getId()가 null 반환 하는게 맞음?
ㅇ 테스트 트랜잭션때문에 하위 트랜잭션은 작동 안 하니까
그럼 저렇게 수동으로 flush 시키는 방법밖에 없음? @Transacional 빼면 rollback이 안되잖앙
캐시에 담겨있어서 null임 - dc App
테스트 디비 달기 귀찮아서 설정 없이 메모리로 쓰고있음
참고하면 좋을듯
https://jojoldu.tistory.com/761
테스트클래스 파일에 트랜잭셔널을 붙이는거 자체가 이해가 안됨 실제 환경과 달라져버림
테스트 트랜잭션과 관련하여 토비님의 글도 있으니 참조
https://toby.epril.com/m/8