@Transactional 2

@Transactional의 선언 위치

일전에 JPA에서 사용하는 어노테이션을 다루는 글에서 소개한 적이 있는 @Transactional 어노테이션에 대해서 다루다가 궁금한 점이 생겼었고, 그 의문점을 해결하여 기록합니다. 우선 그 전에, @Transactional이 무엇인지 알아보자. @Transactional은 기본적으로 선언된 메서드 내에서, 오류가 발생했을 경우 진행했던 변경 기록들을 DB에 커밋하지 않고 롤백하는 기능을 한다. 그래서 우리는 어떤 메서드를 동작시킬 때, DB에서 read를 제외한 CUD를 수행하고자 한다면, 필수적으로 이 어노테이션을 사용해야했다. Q. 왜 Repository에 선언하지 않고, Repository를 사용하는 메서드에서 @Transactional을 사용하나요? 보통 많은 서비스에서 하나의 트랜잭션(데이터..

JPA 2023.08.17

영속성 컨텍스트(Persist Context) - 간단하게 이해하기

해당 글은 정확한 개념보다는 지식이 전무후무한 독자들이 가볍게 읽을 수 있는 형태로 작성되었습니다. 보다 정확하고, 깊이있는 글을 원하시는 분은 다른 글을 참고하시면 좋을 것 같습니다. 자바 스프링부트 JPA를 막 시작했다. 개념보다는 실전을 먼저 들어가서, 모르는 개념을 찾아 우선적으로 익힌 다음에 개념 강의로 더 단단한 개념을 쌓으려고 시도했다. 시작하자마자 모르는 것 투성이... 다 체크하고 개념에 대해서 조금 익혔다. 이 글은 JPA에 대한 개념이 없이 영속성 컨텍스트 및 영속성에 대한 개념을 대략적으로나마 이해하고자 하는 독자에게 추천한다. 1. 엔티티 엔티티는 데이터베이스에서도 들어보았던 용어였습니다. 쉽게 얘기하자면, 데이터베이스에 한 테이블에서 하나의 행을 의미합니다. 즉, 하나의 데이터를..

JPA 2023.08.04