영속성 컨텍스트 관련 질문입니다.
228
작성한 질문수 2
혹시 트리거를 사용하게 되면 영속성 컨텍스트를 통해 데이터가 바뀌는 것이 아닌데
마이바티스/혹은 데이터베이스를 직접 조작하는것처럼 적용되는지 궁금해서 질문남깁니다.
오늘 데이터상 오류를 발견하고
1주일전의 데이터를 수정했을 때 트리거를 적용시켜서
1주일 전부터 오늘까지의 데이터를 수정하게 된다면
영속성 컨텍스트는 어떻게 적용이 되나요??
예를 들어서
dataA.getTemp() = 100 인 상태에서
dataB의 어떠한 데이터를 변경했을 때 트리거가 동작해서 dataA의 Temp가 변경된다면
영속성컨텍스트는 트리거에 의한 데이터 변경도 감지할 수 있나요?
답변 1
1
안녕하세요. 2010psw님
영속성 컨텍스트는 트리거 뿐만 아니라 외부에서 발생한 SQL의 데이터 변경을 감지할 수 없습니다.
dataA.getTeam() = 100인 상태에서
다른 요청에 의해서 dataA의 값이 200으로 변경되어도 dataA는 변경된 내용을 인식할 수 없습니다.
그런데 생각해보시면 이것은 영속성 컨텍스트 만의 문제는 아닙니다.
우리가 개발을 할 때 JPA를 전혀 사용하지 않고 SQL을 직접 사용해도 동일한 문제가 발생합니다.
예를 들어서
dataA를 조회하는 쿼리를 실행해서
dataA.getTeam() = 100인 상태를 만듭니다.
그 다음에 다른 요청에 의해서(다른 트랜잭션) dataA의 값을 200으로 변경해도
dataA의 값을 조회하면 100인 상태로 남아있게 됩니다.
그래서 이런 문제는 락을 걸거나 다른 방법으로 풀어야 합니다.
감사합니다.
existsByUserIdAndProjectId vs existsByUserAndProject 중 어떤 방식이 적절할까요?
0
66
1
existsByUserIdAndProjectId vs existsByUserAndProject 중 어떤 방식이 적절할까요?
0
103
3
MemberRepository 구현체
0
56
1
pdf 표현 질문드립니다.
0
60
1
로그가 남지 않는 문제.
0
79
1
테스트 라이브러리가 강의는 junit4가 맞나요??
0
68
2
pdf 파일과 차이점이 있는 것같은데 문제 없나요?
0
69
2
@PrePersist, @PreUpdate 호출 시점 질문드립니다.
0
91
2
Sort 인터페이스는 잘 사용 안하나요?
0
51
1
스캔대상 질문드립니다.
0
45
1
하이버네이트6에서의 최적화에 이은 질문
0
82
1
save() vs saveAndFlush DB 통신 횟수
0
51
1
순수 JPA 리포지토리 코드 수정부분
0
85
2
bulk연산 후 flush하는 이유를 모르겠어요
0
149
3
bulk insert 질문입니다.
0
174
2
교만했던 것 같아요.
0
145
1
RESTful 강의는 안하시는 건지 궁금합니다.
0
144
2
동적 테이블에 대한 질문
0
84
1
영속성 전이와 연관관계
0
130
2
강의 10:25 질문
0
72
1
단건 update 질문
0
94
2
엔티티 와 도메인의 경계
0
126
1
UsernameOnlyDto 타입 type mismatch 오류
0
118
1
Projection 개념과 데이터 전달과정에 대해 질문 있습니다.
0
135
1





