이 포스팅 시리즈는 인프런에서 김영한님의 JPA활용 강의를 듣고서
궁금한 점과 중요하다고 생각하는 부분을 정리한 것입니다.
@SpringBootApplication🔋
- 이 어노테이션이 붙은 어플리케이션 클래스의 하위 클래스를 전부 컴포넌트 스캔 해준다.
@Transactional📟
- DB에서 CRUD 작업 중 오류가 났을 때, 모든 작업들을 Rollback(원상태로 되돌림)한다.
- 데이터 변경 작업 시에는 트랜잭셔널이 꼭 필요하다!
readOnly
@Transactioanl(readOnly = true)를 하면 읽기 전용 메소드가 되는데,
영속성 컨텍스트를 플러시 하지 않아서 DB의 성능이 약간 향상된다.
그러니 데이터 변경 시에만 readOnly를 false로 하는 것이 좋다.(Transactional 의 Defaul는 readOnly = false이다.)
Unique🃏
회원가입을 할 때, 동일 아이디 생성을 막도록 검증하는 로직이 필요하다.
하지만 멀티쓰레드(동시에 가입)하는 상황을 대비해서 아이디 컬럼에 유니크 제약조건을 추가하는 것이 안전하다.
@Column(unique = true, nullable = false)
private String account_id;
글에서 잘못된 점이나 궁금한 점은 댓글로 남겨주세요🧐