적용
@Entity : JPA가 사용하는 객체
@Id : 테이블의 PK와 해당 필드를 매핑
@GeneratedValue(strategy = GenerationType.IDENTITY) : PK 생성 값을 데이터 베이스에서 생성
@Column : 객체의 필드를 테이블의 컬럼과 매핑
>> 생략할 경우 필드의 이름을 테이블 컬럼으로 사용
JPA는 public 또는 protected의 기본 생성자 필수
스프링을 통해 EntityManager를 주입 받음
>> JPA의 모든 동작은 엔티티 매니저를 통해 이루어짐
>> 엔티티 매니저는 내부에 데이터 소스를 가지고 있고 데이터 베이스에 접근 가능
@Transactional
>> JPA의 모든 데이터 변경은 트랜잭션 안에서 이루어져야 함
JPA에서 객체를 테이블에 저장할 때는 엔티티 매니저가 제공하는 persist() 메서드 사용
JPA는 트랜잭션이 커밋되는 시점에 변경된 엔티티 객체가 있는지 확인
>> 특정 엔티티 객체가 변경된 경우에 UPDATE SQL 실행
JPA에서 엔티티 객체를 PK를 기준으로 조회할 때는 find() 사용
예외 변환
엔티티 매니저는 예외가 발생하면 JPA 관련 예외 발생시킴
PersistenceException과 그 하위 예외 발생
@Repository
>> 컴포넌트 스캔의 대상
>> 예외 변환 AOP 적용 대상
>> 스프링은 JPA 예외 변환기 등록
예외 변환 후
출처 : 김영한, 스프링 DB 2편 - 데이터 접근 활용 기술
'Spring' 카테고리의 다른 글
DB / Querydsl (0) | 2025.05.03 |
---|---|
DB / Spring Data JPA (0) | 2025.05.02 |
DB / MyBatis (0) | 2025.04.29 |
DB / Test (0) | 2025.04.28 |
DB / Spring JdbcTemplate (0) | 2025.04.27 |