Entity class
예시
@Entity // JPA 기능을 클래스에 부여하는 어노테이션
@Table(name = "TB_DEPT") // 테이블 명 지정
// JPA 어노테이션 SQL 문 자동 생성시 NULL 값 컬럼은 제외하고 생성하는 어노테이션
@DynamicInsert
@DynamicUpdate
@SequenceGenerator( // 시퀀스 설정
name = "SQ_DEPT_GENERATOR" // 시퀀스 함수이름
, sequenceName = "SQ_DEPT" // DB에 생성된 시퀀스 이름
, initialValue = 1 // 시작값
, allocationSize = 1 // JPA에서 관리용 숫자(성능지표) : 그냥 1 넣어주면 됨
)
// 밑에는 기본 lombok 어노테이션 들
@Getter
@Setter
@ToString
@NoArgsConstructor
@AllArgsConstructor
public class Dept extends BaseTimeEntity { // 공통 컬럼인 BaseTimeEntity 상속
@Id // 기본키 설정
@Column(columnDefinition = "NUMBER") // DB 컬럼 자료형 지정
// TODO : 사용법 : strategy (전략) = GenerationType.땡땡땡
// generator = "시퀀스함수이름"
@GeneratedValue(strategy = GenerationType.SEQUENCE
, generator = "SQ_DEPT_GENERATOR"
)
private Integer dno;
@Column(columnDefinition = "VARCHAR2(255)")
private String dname;
@Column(columnDefinition = "VARCHAR2(255)")
private String loc;
}
BaseTimeEntity
https://tinylittlelife.tistory.com/233
< 어노테이션 >
@Table
테이블 명 지정
( 지정 안해주면 클래스명에 따라서 자동으로 컬럼을 생성해버릴 위험이 있음 )
@Table(name = "생성될 테이블명")
속성 | 특징 |
@Entity | JPA 기능을 클래스에 부여하는 어노테이션 |
@Table | 테이블 명 지정 ( 지정 안해주면 클래스명에 따라서 자동으로 컬럼을 생성해버릴 위험이 있음 ) |
@SequenceGenerator | JPA 어노테이션 SQL 문 자동 생성시 NULL 값 컬럼은 제외하고 생성하는 어노테이션 |
@DynamicInsert @DynamicUpdate |
JPA 어노테이션 SQL 문 자동 생성시 NULL 값 컬럼은 제외하고 생성하는 어노테이션 ( * 예시 * ) insert into 테이블명( 컬럼1,컬럼2 ,컬럼3) values ( 1 , 2 , null ) => insert into 테이블명 (컬럼1, 컬럼2) values ( 1 , 2 ) |
@Id | 기본키(Primary key) 설정 |
@GeneratedValue | 자동으로 값을 하나씩 올려줌 ( 제약조건 때문에 ) SEQUENCE : 오라클 DB IDENTITY : MySql DB |
@Column | DB 컬럼 자료형 지정 |
'SpringBoot > JPA' 카테고리의 다른 글
SpringBoot - JPA - 페이징 처리 (1) | 2023.10.18 |
---|---|
SpringBoot - JPA - 쿼리 메소드와 @Query 어노테이션 (0) | 2023.10.17 |
SpringBoot - JPA - Repository (인터페이스) (0) | 2023.10.16 |
SpringBoot - JPA - BaseTimeEntity (생성일자 , 수정일자) (0) | 2023.10.16 |
SpringBoot - JPA 라이브러리 실습을 위한 설정 (0) | 2023.10.16 |