* 수시로 업데이트 할 예정
- 실행
@SpringBootApplication | 스프링부트가 실행될 기준이될 클래스, main메소드가 선언된 곳에 선언해준다. |
- 생성자
@NoArgsConstructor | 파라미터가 없는 기본 생성자를 생성 |
@RequiredArgsConstructor | final변수, Notnull 표시가 된 변수 등 필수적인 정보를 세팅하는 생성자를 생성 |
@AllArgsConstructor | 전체 변수를 생성하는 생성자 |
- 필드
@Getter | Class 내의 모든 필드의 Getter method 생성 |
@Setter | Class 내의 모든 필드의 Setter method 생성 |
- Controller
@Controller | 기본 컨트롤러 선언 @Component포함 |
@RestController | @Controller + @ResponseBody 이 어노테이션을 사용하면 별도의 @ResponseBody를 선언해줄 필요 없다. @Component포함 |
- Service
@Service | @Component포함 |
- Repository
@Repasitory | JpaRepository를 상속할 경우 JpaRepository를 통해 빈으로 등록 |
- Entity
@Entity | 테이블과 매핑 | |
name = | 엔티티 이름 설정. HQL에서 엔티티 식별할 이름 | |
@Table | 엔티티와 매핑할 테이블을 지정. 생략시 매핑한 엔티티 이름을 테이블 이름으로 사용 | |
name = | 매핑할 테이블 이름 (default. 엔티티 이름) | |
ctalog = | catalog 기능이 있는 DB에서 catalog를 매핑 (default. DB이름) |
|
schema = | schema기능이 있는 DB에서 schema를 매핑 | |
uniqueConstraints = | *DDL 생성시 유니크 제약 조건 생성 스키마 자동 생성 기능을 사용해 DDL만들 때만 사용 |
|
@UniqueConstraint | ||
@Data | ||
@Id | entity의 id임을 선언 | |
@GeneratedValue | 값 자동 생성 | |
strategy = GenerationType. (생성 전략) |
AUTO (자동) (✅ default) | |
IDENTITY (id값을 먼저 insert 해버려 트랜젝션이 끝나기 전에 , 즉 롤백 된다하더라도 이미 insert 되어 있어서 마치 이빨빠진것 처럼 중간에 비는 현상이 발생한다.) |
||
SEQUENCE (오라클, postqre에서 쓰는데 insert를 할 때 sequence로부터 증가된 id 값을 받아서 실제 id값에 넣는 방식) |
||
TABLE (DB종류 상관없이 테이블에 id값을 저장해 추출하여 사용) |
||
@Column | 객체 필드를 테이블 컬럼에 매핑 (생략 가능) | |
nullable (null값 허용) = | true / false | |
name = | 매핑할 컬럼 이름 (default. 변수 이름) | |
@Enumerated | Java Enum을 테이블에서 사용하는 방식 | |
EnumType. | ORDINAL (enum 순서를 DB에 저장) (✅ default) |
|
STRING (enum 이름을 DB에 저장, 후에 enum이 변경되어도 문자열 그대로 저장되어있어 변경되어도 위험이 없어 일반적으로 string을 사용) |
||
@EntityListeners | 삽입, 삭제, 수정, 조회 등의 작업을 할 때 전, 후에 어떠한 작업을 하기 위해 이벤트 처리를 위한 어노테이션 | |
AuditingEntityListener.class | Audit(감시하다) 옵션은 시간에 대해서 자동으로 값을 넣어 주는 기능 | |
@ManyToOne | 다대일(N:1) 관계 매핑, 연관관계의 주인임을 나타낸다. | |
optional | false 설정 시 연관된 엔티티가 항상 있어야 한다. (default. true) |
|
fetch = FetchType. (global fetch 전략 설정) |
EAGER (즉시로딩) | |
LAZY (지연로딩) | ||
cascade = CascadeType. (영속성 전이 기능 사용) |
ALL (모든 부분에서 영속성 전이) |
|
PERSIST (부모 영속화시 연관된 자식들도 영속화) |
||
MERGE | ||
REMOVE | ||
REFRESH | ||
DETACH | ||
orphanRemoval | ||
@JoinColumn | 외래 키 매핑 (생략가능) | |
name = | 외래 키로 연결할 컬럼 이름 | |
@OneToMany | 일대다(1:N) 관계 매핑 | |
mappedBy = | 연관관계 주인 설정 |
- 상속
@MappedSuperclass | 공통 매핑 정보가 필요할 때, 부모클래스에 선언하는 어노테이션. 필드만 상속 받아서 사용 하고 싶을때 사용. |
- Bean
@Component | ||
@Autowired | 스프링에 의해 생성된 Bean객체를 DI (의존성 주입) |
참고 링크들 :
생성자 관련 ) https://goyunji.tistory.com/98
Entity 관련) https://data-make.tistory.com/610
'Programming > Spring' 카테고리의 다른 글
ORM / JPA / Hibernate / Spring Data JPA (0) | 2022.12.05 |
---|---|
Entity Mapping 심화 (엔티티설정, 연관관계, 연관관계의 주인) (0) | 2022.12.02 |
영속성 컨텍스트 (0) | 2022.12.02 |
의존성과 라이브러리 (0) | 2022.11.28 |
스프링 부트(Spring Boot) 프로젝트 생성 (0) | 2022.11.28 |