- @Entity
- 클래스 위에 선언, 해당 클래스가 엔티티라는 것을 알려준다.
- 해당 클래스에서 정의된 필드들로 데이터베이스에 테이블을 만들어 준다.
- @Entity(name = “테이블이름”) 처럼 name 입력 시 이름 지정 가능
- @Builder
- 해당 클래스에 해당하는 엔티티를 만들 때 빌더 패턴을 이용해서 만들 수 있도록 지정해주는 어노테이션
- @AllArgsConstructor
- 선언된 모든 필드를 파라미터로 갖는 생성자 자동 생성
- @NoArgsConstructor
- 파라미터 없는 생성자 자동 생성
- @Getter
- 각 필드값을 조회할 수 있는 getter 메소드 자동 생성 ex) getName()
- @Setter
- setter() 메소드를 만들어 주지만, Entity 클래스에서는 setter 메소드를 만들지 않도록 한다.
- @Table
- @Entity 에서 생성해주는 테이블 이름 지정
- (name = “이름 지정”)
- @Column
- 테이블의 컬럼을 나타내며 굳이 선언하지 않아도 해당 클래스의 필드는 모두 컬럼이 된다.
- @Column 의 속성
- name: 컬럼 이름, 미지정시 필드이름으로 설정된다.
- nullable: 컬럼의 null 허용 여부, 설정하지 않으면 true
- unique: 컬럼의 유일한 값 여부, 설정하지 않으면 false
- columnDefinition: 컬럼 정보 설정, default 값을 줄 수 있다.
- @Lob
- Large Object의 줄임말, varchar보다 큰 문자열 길이
- @GeneratedValue
- Primary key 생성 규칙
- (strategy = GererationType.IDENTITY) 옵션 시 해당 속성에 값을 따로 설정하지 않아도 자동으로 1씩 증가하여 저장된다.
- @toString
- toString() 메소드 자동 생성
- @RequiredArgsContructor
- required된 필드에 대한 생성자 자동 생성
- 초기화되지 않은 final 필드나, @NonNull이 붙은 필드와 같이 반드시 값이 할당되어야 하는 필드들에 대한 생성자 생성
@Entity
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@Getter
@Table(name = "types")
public class PetType extends BaseEntity {
@Builder
public PetType(Long id, String name) {
super(id);
this.name = name;
}
@Column(name = "name")
private String name;
@Override
public String toString() {
return "PetType [name=" + name + "]";
}
}
728x90
'Back-end > Spring Boot' 카테고리의 다른 글
스프링부트3 백엔드개발자되기 / 2장 스프링 부트 3 시작하기 (0) | 2023.11.18 |
---|---|
스프링부트3 백엔드개발자되기 / 1장 자바 백엔드 개발자가 알아두면 좋은 지식 (0) | 2023.11.18 |
[Spring Boot] Thymeleaf (0) | 2023.11.03 |
[Spring DB] JpaRepository (1) | 2023.11.03 |
[Spring DB] BaseEntity (0) | 2023.11.03 |