요료료룡
2024. 3. 29. 17:14
안녕하세요~! 오늘은 JPA에서 사용하는 어노테이션에 대해 정리를 해보았습니다.
참고하시어 여러분의 개발에 도움이 되었으면 좋을 것 같네요!!
Annotation |
설명 |
@Entity |
- JPA가 관리하는 테이블과 매핑되는 객체가 된다.
- 기본적으로 Class 이름이 테이블명이 됨.
- @Entity가 사용된 클래스를 “엔티티 클래스”라 한다.
|
@Table |
- 엔티티 클래스와 매핑할 테이블 정보를 알려준다.
- “name 속성”을 사용해서 Member 엔티티를 MEMBER 테이블에 매핑
- 이 어노테이션을 생략하면 “클래스 이름”을 그대로 테이블 이름으로 매핑
|
@Id |
- 엔티티 클래스의 필드 테이블의 기본 키 (Primary Key)에 매핑
- 엔티티의 id필드를 테이블의 ID 기본 키 컬럼에 매핑
- @Id가 사용된 필드를 “식별자 필드”라 한다.
- @Id 만 사용할 경우 기본 키를 직접 할당 → @GeneratedValue
|
@GeneratedValue |
|
@Column |
- 필드를 컬럼에 매핑한다.
- “name 속성”을 사용해서 Member 엔티티의 username 필드를 테이블의 NAME 컬럼에 매핑
|
@Data |
- lombok 라이브러리의 @Getter @Setter , @RequiredArgsConstructor, @ToString, @EqualsAndHashCode를 전부 통합한 어노테이션
|
@GenericGenerator |
|
@NonNull |
- lombok이 자동으로 NonNull이 붙은 properties들로 생성자를 만들어 줌
|
@OneToMany |
|
@Getter |
- 해당 클래스에 포함된 멤버 변수의 모든 getter 메서드를 생성해주는 롬복의 강력한 기능
|
@Builder |
- 해당 클래스의 빌더 패턴 클래스를 생성
- 생성자 상단에 선언 시 생성자에 포함된 필드만 빌더에 포함
|
@Bean |
- 개발자가 제어가 불가능한 외부 라이브러리와 같은 것들을 Bean(자바 객체)으로 만들 때 사용
|
@Component |
- 개발자가 생성한 Class를 Spring의 Bean 으로 등록할 때 사용하는 어노테이션.
- Spring은 해당 어노테이션을 보고 Spring의 Bran으로 등록
|
@Autowired |
- 속성(field), setter method, constructor(생성자)에게 사용하며 Type에 따라 알아서 Bean을 주입해준다.
- 이 어노테이션을 사용하면 스프링이 자동적으로 값을 할당한다.
|
@Controller |
- Spring의 Controller를 의미. Spring MVC에서 Controller클래스에 쓰임
|
@RestController |
- @Controller에 @ResponseBody가 결합된 어노테이션
- Json형태로 객체 데이터 반환
|
@Service |
- Service Class에 쓰임
- 비즈니스 로직을 수행하는 Class라는 것을 나타내는 용도
|
@Repository |
- DAO 객체 class에 쓰임
- DB에 접근하는 method를 가지고 있는 클래스에서 쓰임
|
@EmbeddedId |
|
@Embeddable |
|
@Embedded |
|
@ResponseBody |
|
@RequiredArgsConstructor |
- 임의의 코드 없이 자동으로 설정
- final 혹은 @NotNull이 붙은 필드의 생성자를 자동으로 만들어 줌.
|
@JoinColumn |
- 테이블들 간 연관관계를 설정해 줄 때 일대다( 1 : N )관계일 때 사용하여 해당 컬럼의 이름 설정
|
@Slf4j |
- 로그를 남기는 방식 중 logger 클래스를 사용할 수 있게 해주는 어노테이션
|
@Valid |
- @NotBlank와 같은 유효성 검사들을 해주는 어노테이션
|
@Lob |
- Large Object로 이름에 걸맞게 저장할 수 있는 데이터의 양이 4기가로 대용량이다.
|
추가로 Lombok의 대표 Annotation입니다.
Annotation |
설명 |
@Setter |
- Class 모든 필드의 Setter method를 생성해 줌.
|
@Getter |
- Class 모든 필드의 Getter method를 생성해 줌.
|
@AllArgsConstructor |
- Class 모든 필드 값을 파라미터로 받는 생성자를 추가.
|
@NoArgsConstructor |
|
@ToString |
- Class 모든 필드의 toString method를 생성.
|
도움이 되셨으면 좋겠습니다. 감사합니다.