H2-Console 활성화 Hibernate Statistics 활성화 Statistics 로깅 활성화 SQL Query 출력 활성화 SQL Query Format 활성화(운영 환경에서는 비활성화하기) Parameter Trace 로깅 활성화
org.springframework.transaction.annotation.Transactional해당 메소드를 트랜잭션 내에 실행오류 발생시 롤백테스트 실행시 수정 된 데이터를 원상 복귀 시킴현재 실행 중인 트랜잭션 내의 모든 엔티티를 트래킹이로 인해 엔티티 수정
✔ 깃허브 소스코드✔ Udemy 강의영상
@NameQueries
✔ 깃허브 소스코드✔ Udemy 강의영상
Fetch Type은 JPA가 하나의 엔티티를 조회할 때, 연관 관계에 있는 객체들을 어떻게 가져올 것이냐를 나타내는 설정값입니다.Fetch Type은 크게 Eager와 Lazy 두 가지의 전략이 있습니다. Eager 전략은 엔티티를 조회할 때, 연관 관계에
현재 트랜잭션이 관리 중인 모든 엔티티를 저장하는 공간입니다. 트랜잭션이 시작할 때 생성되고 트랜잭션이 끝날 때 제거가 됩니다.만약에 @Transactional 어노테이션이 없을 경우, Entity Manager의 연산(Database Operation 1)이 끝날 경
데이터베이스 내의 데이터 중복을 방지하기 위해 한쪽 엔티티만을 연관관계의 주인으로 설정기본적으로 FetchType 은 Eager로 설정되어 있음연관관계의 주인을 설정할 때, 주인이 아닌 쪽에 mappedBy = {변수명}을 설정해주면 됨Student 클래스Passpor
✔ SINGLE_TABLE부모 클래스자식 클래스@Inheritance의 strategy의 기본값은 SINGLE_TABLE 입니다.SINGLE_TABLE은 상속 관계에 있는 테이블들을 모두 합쳐서 하나의 테이블로 저장합니다. 즉, 부모 테이블만 생성됩니다.기본적으로 DT
데이터베이스의 상태를 변환시키는 하나의 논리적인 작업 단위를 구성하는 연산들의 집합입니다.예를 들어 A 계좌에서 B 계좌로 일정 금액을 이체한다고 가정합시다.A 계좌의 잔액을 확인한다.A 계좌의 금액에서 이체할 금액을 빼고 다시 저장한다.B 계좌의 잔액을 확인한다.B
영속성 컨텍스트(Persistence Context)의 내부에는 엔티티를 보관하는 저장소가 있는데 이것을 1차 캐시(First Level Cache)라고 부릅니다. 1차 캐시는 트랜잭션이 시작하고 종료할 때까지만 유효합니다. 즉, 트랜잭션 단위의 캐시입니다. 따라서 애
특정 데이터를 조회하기 위해 쿼리 1번으로 N개의 데이터를 가져왔는데, 각 데이터를 순회하면서 연관 관계에 있는 데이터를 얻기 위해 쿼리를 N번 더 수행하는 문제입니다.주로 연관 관계에 대한 FetchType을 Lazy로 지정했을 때 주로 발생합니다.이 방법을 사용하게
스프링 데이터 JPA는 데이터 액세스 개발을 할 때 구현 클래스 없이 인터페이스만 선언해도 개발을 완료할 수 있도록 도와주는 라이브러리입니다.JpaRepository를 상속받고 제네릭 타입에는 <엔티티 클래스, 식별자 타입>을 지정해줍니다.기본적인 CRUD 기능은
🚀 @Modifying 어노테이션은 어노테이션으로 작성된 수정, 삭제 쿼리 메소드를 사용할 때 필요합니다. 즉, 조회 쿼리를 제외하고 데이터에 변경이 일어나는 쿼리에서 사용합니다. 주로 벌크 연산 시 사용합니다.
단방향 관계 ➡두 엔티티가 연관 관계를 맺고 있을 때, 한 쪽의 엔티티만 다른 쪽을 참조하고 있는 것을 의미합니다.양방향 관계 ↔두 엔티티가 연관 관계를 맺고 있을 때, 양 쪽이 서로를 참조하고 있는 것을 의미합니다.데이터베이스 모델에서는 관계를 맺어주기만 하면 자동으
1️⃣ @Transactional 낭비 아래의 메소드를 보시면 모든 것이 제대로 흘러 가는 것을 볼 수가 있습니다. 데이터베이스로부터 엔티티가 반환된다. 반환된 엔티티의 필드를 변경한다. 조건이 맞다면 변경 사항을 데이터베이스로 업데이트 한다. 하지만 어노테이션을