inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실전! 스프링 데이터 JPA

영속성 컨텍스트 관련 질문입니다.

228

2010psw

작성한 질문수 2

0

혹시 트리거를 사용하게 되면 영속성 컨텍스트를 통해 데이터가 바뀌는 것이 아닌데

마이바티스/혹은 데이터베이스를 직접 조작하는것처럼 적용되는지 궁금해서 질문남깁니다.

오늘 데이터상 오류를 발견하고

1주일전의 데이터를 수정했을 때 트리거를 적용시켜서

1주일 전부터 오늘까지의 데이터를 수정하게 된다면

영속성 컨텍스트는 어떻게 적용이 되나요??

예를 들어서

dataA.getTemp() = 100 인 상태에서

dataB의 어떠한 데이터를 변경했을 때 트리거가 동작해서 dataA의 Temp가 변경된다면

영속성컨텍스트는 트리거에 의한 데이터 변경도 감지할 수 있나요?

JPA java spring-boot spring

답변 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