-
001. JPA란?IT 공부방 [기본지식 정리]/Spring JPA 2025. 4. 14. 16:37
1. JPA 개념 이해
- Java Persistence API → 자바 진영에서 만든 표준 ORM(객체 관계 매핑) 명세야. (인터페이스의 모음)
- 직접 사용하는 구현체는 Hibernate가 가장 유명함. (Spring 기본 구현체)
- 아래 예시처럼 테이블을 객체처럼 접근 가능
User user = entityManager.find(User.class, id);
2. ORM(Object Relational Mapping)이란?
- 객체지향 프로그래밍의 객체 ↔ 관계형 데이터베이스의 테이블 자동 매핑
- 즉, User 객체가 DB의 user 테이블과 자동으로 연결돼서, SQL 없이 조작 가능
@Entity public class User { @Id @GeneratedValue private Long id; private String name; }
3. JPA Entity 매핑 애너테이션
애너테이션 역할 @Entity 테이블 매핑 클래스 지정 (생략되면, 해당 클래스는 무시된다.) @Table() 매핑될 테이블 명 지정 (name="table_name") @id Primary Key 지정 @GeneratedValue() 제약조건 자동 생성 전략 (IDENTITY, SEQUENCE 등) @Column() 컬럼 상세 설정 (name = "user_name", nullable = false, length = 100) @Transient DB 매핑 제외 @OneToOne,
@OneToMany,
@ManyToOne,
@ManyToMany관계 매핑 @JoinColumn 외래 키 지정 @JoinTable 다대다 매핑 중간 테이블 지정 💡 참고: 기본적으로 매핑되는 규칙
String varchar int, Integer int Long bigint LocalDateTime datetime 4. JPA 환경 관리 애너테이션
1) 어플리케이션 구성
애너테이션설명
애너테이션 역할 @SpringBootApplication 메인 클래스 진입점 @Configuration 자바 기반 설정 클래스 @ComponentScan 컴포넌트 자동 스캔 @Bean 수동 빈 2) 의존성 주입 [=Sprint Framework]
애너테이션 역할 @Component Bean 등록용 기본 애너테이션 @Service 서비스 계층 명시 @Repository DAO 계층 명시 + 예외 변환 @Controller, @RestController 웹 컨트롤러 @Autowired, @Inject, @Qualifier 의존성 주입 3) 트랜잭션 & DB 설정 관련 [=Sprint Framework]
@Transactional 트랜잭션 처리 범위 지정 (처리 후 자동 롤백) @EnableTransactionManagement 트랜잭션 기능 활성화 5. 테스트 관련 애너테이션
애너테이션 역할 @Test JUnit 테스트 메서드 @SpringBootTest 통합 테스트 환경 구성 (App/src/Test 환경) @DataJpaTest JPA 레이어만 슬라이스 테스트 @WebMvcTest 컨트롤러 테스트 @MockBean, @Mock, @Spy 테스트용 Mock 객체 주입 @ActiveProfiles("test") 특정 profile 설정 불러오기 'IT 공부방 [기본지식 정리] > Spring JPA' 카테고리의 다른 글
099. Spring JPA 에러 (0) 2025.04.14 002. Spring 기본구조 (0) 2025.04.14 000. Spring JPA - MVC 패턴 설계 (1) 2025.04.09