회사에서 MSSQL을 사용하고 있습니다
기존에 마이바티스를 사용하고 있었고 최근 JPA와 querydsl을 도입했습니다
MSSQL특성 상 SELECT 쿼리에 with(nolock) 힌트를 줘서 써야한다하기에
셀렉트 쿼리에 한하여 @Transactional (isolation = Isolation.READ_UNCOMMITTED) 를 줬습니다
현재 배포시 의문의 락이 걸리고 있는 상황인데, 개발서버에서는 아무 이상이 없고 운영에만 넘어가면 락이걸리네요
아무튼 상황은 이렇구 제 의문은 이겁니다
with(nolock)힌트를 줘서 더티리드를 한다고 한다면 JPA는 어쨋건 읽어오면서 영속성 컨텍스트에 저장을 하게되잖습니까?
그럼 더티리드를 여러군데서 해간다고 한다면 정합되지 않은 해당 정보들이 모두 영속성 컨텍스트에 들어간 상태인데,
그 상황에 어딘가에서 변경감지를 통한 업데이트 쿼리가 발생한다고 한다면 이게 정확히 어떤식으로 동작하는지가 궁금합니다.
현재 발생하고 있는 의문의 락과 연관이 있을까요?