TransactionManager 분리/통합 사용 시 이해가 가지 않는 상황 발생
킬구형... 정말 감동이다. 이렇게까지 상세한 답변을 해주다니...덕분에 완벽하게 이해 완료했다. 내가 놓쳤던 건 다음 부분이었다.AbstractPlatformTransactionManager의 processCommit()에서 새로 생성된 트랜잭션인지 여부 검사 → 트랜잭션을 새로 생성한 5-1케이스(JdbcTransactionManager)인 경우에만 트랜잭션 commit. 따라서 version 2로 업데이트된다. 기존 트랜잭션을 그대로 사용하는 5-2 케이스(JpaTransactionManager)는? EntityManager 1차 캐시에 남아있을 것이다. 따라서 DB에는 여전히 version 1 상태로 남아있게 되지 사실 질문한 날 하루종일 스프링 배치 디버깅을 했다. 그러다 보니 트랜잭션 매니저 통합 사용 시, AbstractPlatformTransactionManager의 processCommit() 에서 커밋이 날라가서 DB에 반영이 되었다고 잘못 확인을 하였던 것 같다. (Participating in existing transaction 로그가 이제서야 보인다... 대가리 박는다.) 그래서 질문의 내용이 '왜 트랜잭션 매니저 통합 사용 시 OptimisticLocking이 발생하지 않는가''였다... 디버깅한 내용이 제대로 파악이 안되어있는데, 일목요연하게 정리해준 덕분에 빠르게 오해를 바로 잡을 수 있었다. 킬구형...정말 고맙고.... 미안하다...