답변 1
0
dev 님 안녕하세요.
Stock 에 있는 Version 을 spring 에 있는걸 import 하셨더라고요. javax.persistence 에 있는걸로 바꿔서 import 해주시길 바랍니다.
TestClass 위에 @Transactional 어노테이션을 삭제해주시길 바랍니다.
위와같이 했을경우 정상적으로 동작하는것을 확인하였습니다 :)
맞네요 (16)으로 하니 정상 실행되네요.
ExecutorService executorService = Executors.newFixedThreadPool(32);
-> ExecutorService executorService = Executors.newFixedThreadPool(16);
아 그럼 좀 다른 질문 드릴게요.
저는 javax 트랜잭션이랑 spring 트랜잭션이랑 큰 차이가 없는 줄 알았는데, 적어도 낙관락 구현에 있어서 만큼은 좀 많이 차이가 나나 보네요?
스프링이 제공하는 트랜잭션 어노테이션을 이용했을 때의 낙관락 구현방식과 javax 낙관락 구현 방식이 좀 다른가요?
그리고 지금이야 예제가 로컬이니 ddl create 로 넘어가고, 트랜잭션 어노테이션 안달아야 정상 동작한다고 치는데,
ddl : create 가 아니라 치면 테스트 클래스에서 테스트 마친 후의 롤백은 어떤 식으로 하나요?
javax transaction 이랑 spring transaction 의 차이라는게 무슨말씀이신지 이해를 하지 못하겠습니다.
version 말씀하시는걸까요 ?
보통 실데이터를 가지고 테스트를 하고자할때는 test container 를 사용하여 테스트합니다.
트랜잭션 부분은 제가 혼자 잠시 헷갈린 것 같습니다 그냥 무시해주세요 ㅋㅋㅋ (ㅇ_ㅇ)
테스트쪽은 주신 링크 참고해보겠습니다. 감사합니다 (_ _)
다만 저 newFixedThreadPool(number) <- 이건 로컬 환경에 따라 값은 달리 해줘야 할 거 같네요 ㅋㅋ
아 넵 말씀주신대로 했는데
계속 foo 에러를 뱉더라고요 /
혹시 newFixedThreadPool 의 값이 영향을 끼치는 걸까요? <- 이 부분이 걸리네요.