반응형
오늘 한 일
- Spring Data JPA 공부
- 스프링 컨테이너 환경에서 영속성 컨텍스트는 트랜잭션의 생명주기와 같다
- 트랜잭션 전파(기본설정: Propagation.REQUIRED)
- REQUIRED: 부모 메서드에 트랜잭션이 존재하면 자식 메서드의 트랜잭션은 부모 트랜잭션에 합류한다.
- SUPPORTS: 활성화된 트랜잭션이 있으면 그 트랜잭션에 참여하고, 없다면 트랜잭션 없이 실행한다.
- MANDATORY: 반드시 진행 중인 트랜잭션 내에서 호출해야 한다. 활성화된 트랜잭션이 없으면 예외를 발생한다.
- REQUIRES_NEW: 항상 새로운 트랜잭션을 시작한다. 진행 중인 트랜잭션이 있다면 일시 정지한다.
- NOT_SUPPORTED: 트랜잭션을 사용하지 않고 실행한다. 진행 중인 트랜잭션이 있다면 일시 정지한다.
- NEVER: 트랜잭션 없이 실행한다. 진행 중인 트랜잭션이 있다면 예외를 발생한다.
- Spring Data JPA가 JpaRepository 인터페이스를 상속받은 인터페이스를 스캔하고, 구현하는 클래스를 자동으로 생성해준다. 구현 클래스는 SimpleJpaRepository 클래스고, 이 클래스를 Bean으로 등록한다.
- SimpleJpaRepository가 구현하는 CRUD 메서드는 기본적으로 Transaction이 적용된 메서드이므로 Service에서 트랜잭션 적용할 때 참고하자.
- JPA Auditing: 시간에 대해서 자동으로 값을 넣어주는 기능. @EnableJpaAuditing 애너테이션을 @SpringBootApplication 애너테이션 적용 클래스에 추가해야 한다.
- @MappedSuperclass: 상속할 Base 클래스에 적용하는 애너테이션이다.
- @EntityListeners(AuditingEntityListener.class): 엔티티의 생명주기 이벤트를 감지하는 애너테이션이다.
- @CreatedDate: 객체가 생성되어 저장된 시간이 저장된다.
- @LastModifiedDate: 변경한 시간이 자동으로 저장된다.
- @Temporal: 날짜 타입을 매핑할 때 사용한다.
- 알고리즘 문제 1개 풀기
반응형
'TIL' 카테고리의 다른 글
[TIL] 내일배움캠프 30일차 (0) | 2023.11.16 |
---|---|
[TIL] 내일배움캠프 29일차 (2) | 2023.11.15 |
[TIL] 내일배움캠프 27일차 (0) | 2023.11.13 |
[TIL] 내일배움캠프 26일차 (0) | 2023.11.10 |
[TIL] 내일배움캠프 25일차 (0) | 2023.11.09 |