Spring Data JPA가 개발에 필요한 것은 단지 두 종류의 코드만으로 가능합니다.
1. JPA를 통해서 관리하게 되는 객체를 위한 엔티티 클래스
2. 엔티티 객체들을 처리하는 기능은 가진 Repository
@Entity

엔티티 클래스는 Spring Data JPA에서는 반드시 @Entity 어노테이션을 추가해야만 합니다.
@Entity는 해당 클래스가 엔티티를 위한 클래스이며, 해당 클래스의 인스턴스들이 JPA로 관리되는 엔티리 객체라는 것을 의미합니다.
@Table
@Entity 어노테이션과 같이 사용할 수 있는 어노테이션으로 말 그대로 데이터베이스상에서 엔티티 클래스를 어떠한 테이블로 생성할 것인지에 대한 정보를 담기 위한 어노테이션 입니다.
ex) @Table(name = "t_memo")와 같이 지정하는 경우, 생성되는 테이블의 이름이 't_memo' 테이블로 생성됩니다.
@Id와@GeneratedValue
@Entity가 붙은 클래스는 Primary Key에 해당하는 특정 필드를 @Id로 지정해야만 합니다.
@Id가 사용자가 입력하는 값을 사용하는 경우가 아니면, 자동으로 생성되는 번호를 사용하기 위해서 @GeneratedValue라는 어노테이션을 활용합니다.
@GeneratedValue(strategy = GenerationType.IDENTITY) 부분은 PK를 자동으로 생성하고자 할 때 사용합니다.
오라클의 경우, 별도의 번호를 위한 별도의 테이블을 생성
MySQL,MariaDB면 'auto increment'를 기본으로 사용해 새로운 레코드가 기록될 때 마다 다른 번호를 가질 수 있도록 처리
키 생성 전략
AUTO(default) - JPA구현체(스프링 부트에서는 Hibernate)가 생성 방식을 결정IDENTITY - 사용하는 데이터베이스가 키 생성을 결정. MySQL, MariaDB의 경우 auto increment방식을 이용SEQUNCE - 데이터베이스의 sequence를 이용해서 키를 생성. @SequenceGenerator와 같이 사용
TABLE - 키 생성 전용 테이블을 생성해서 키 생성. @TableGenerator와 함께 사용
'웹개발 > 스프링부트' 카테고리의 다른 글
| RepositoryTest Code (0) | 2021.07.17 |
|---|---|
| application.properties (0) | 2021.07.11 |
| Spring Data JPA (0) | 2021.07.11 |
| [스프링 부트] 기초3 (0) | 2021.06.24 |
| [스프링 부트] 기초2 (0) | 2021.06.22 |