강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

kim님의 프로필 이미지
kim

작성한 질문수

스프링 데이터 JPA

스프링 데이터 JPA 마무리

2가지 질문이 있습니다.

작성

·

195

0

1. A라는 유저와 B라는 유저가 같은 테이블에서 같은 컬럼값 1을 가지고 왔습니다.

A는 1에 1을 더해서 2를 저장하려고 하고,

B는 1이 2가되는 것을 모르고 1에 2를 더해서 3을 만들려고 합니다. 

이렇게 서로가 값을 가지고 있을 때 락을 걸어줘야할 거 은데 JPA로는 어떤 방법이 있을까요?

2. 테이블에서 값이 1 -> 2를 참조하고, 2가 3을 참조하면 3 , 2, 1의 순서로 지울수가 있습니다. 그런데 유저가 실수로 3->1로 참조하게되면 1 , 2 , 3서로가 삭제가 될 수 없는 상태가 되는데 JPA로는 어떤 방식으로 막을 수 있을까여?

p/s백기선님의 인프런 강의 모두 결재한만큼 굉장히 도움이 되고 있습니다. 위에 대한 답변 기다리겠습니다 ㅎㅎ

답변 1

0

백기선님의 프로필 이미지
백기선
지식공유자

1. 트랜잭션에 대해서 공부하셔야 할거 같습니다. 트랜잭션에서 isolation level이라는게 있으니까 그걸 중심적으로 살펴보세요. Isolation Level은 스프링 트랜잭션, JPA, JDBC 모두 설정할 수 있습니다.

2. 유저가 실수로 스키마에 순환 참조 구조를 만든다는 것인가요? 그리고 그런 구조를 만드는 걸 JPA로 어떻게 막을 수 있냐고 물으시는건가요? 유저가 스키마를 만드는데 문법적인 오류만 없다면 JPA는 감지하지 못할겁니다. JPA가 아니라 JDBC를 써도 방법이 없을거 같습니다.

kim님의 프로필 이미지
kim

작성한 질문수

질문하기