혼자서 만들어 보는 Blog
프로젝트 했던 내용을
처음부터 혼자 완성해보려고 한다!
우선 Entity @(어노테이션)부터
몰랐거나 헷갈렸던 @(어노테이션)들을
천천히 정리해가면서 리뷰 gogo
@Entity(name="USERS")
@Getter
@NoArgsConstructor
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(nullable = false)
private String password;
@Column(nullable = false)
private String username;
@Column(nullable = false)
@Enumerated(EnumType.STRING)
private UserEnum role;
}
@NoArgsConstructor vs @RequiredArgsConstructor
(1) @NoArgsConstructor
기본생성자를 생성해주는 어노테이션으로
초기값 세팅이 필요한 final변수가 있을 경우 컴파일 에러가 발생하기 때문에 주의해야한다.
@NoargsConstructor(force=true)를 사용하게되면 null, 0등 기본 값으로 초기화 된다.
(2) @RequiredArgsConstructor
final변수, Notnull 표시가 된 변수처럼 필수적인 정보를 세팅하는 생성자를 만들어준다.
@Enumrated
EnumType.STRING vs EnumType.ORDINAL
(1) EnumType.STRING
각 Enum 이름을 컬럼에 저장한다.
(2) EnumType.ORDINAL
각 Enum에 대응되는 순서를 컬럼에 저장한다.
@GenerratedValue
★ 기본키를 자동으로 생성할 때에는
@Id와 @GenerratedValue이 함께 사용되어야 한다.
※ 기본키 제약조건
1. null이면 안된다 / 2. 유일하게 식별할 수 있어야한다 / 3.변하지 않는 값이어야 한다.
(1) IDENTITY - @GeneratedValue(strategy = GenerationType.IDENTITY)
기본키 생성을 데이터베이스에게 위임하는 방식으로 id값을 따로 할당하지 않아도 데이터베이스가 자동으로 AUTO_INCREMENT를 하여 기본키를 생성해준다.
(2)SEQUENCE - @GeneratedValue(strategy = GenerationType.SEQUNCE)
데이터 베이스의 Sequence Object를 사용하여 데이터베이스가 자동으로 기본키를 생성해준다.
@SequenceGenerator 어노테이션이 필요하다.
(3) TABLE - @GeneratedValue(strategy = GenerationType.TABLE)
키를 생성하는 테이블을 사용하는 방법으로 Sequence와 유사하다.
@TableGenerator 어노테이션이 필요하다
(4) AUTO - @GeneratedValue(strategy = GenerationType.AUTO)
기본 설정 값으로 각 데이터베이스에 따라 기본키를 자동으로 생성한다.
@출처 : https://velog.io/@gudnr1451/GeneratedValue-%EC%A0%95%EB%A6%AC
@GeneratedValue 전략
직접 기본키를 생성하는 방법 @Id 어노테이션 만을 사용하여 기본키를 직접 할당해주는 방법이 있다. 기본키를 자동으로 생성하는 방법 4가지 > 기본키를 자동으로 생성할 때에는 @Id와 @GenerratedVa
velog.io
'내일배움캠프 > Today I Learned' 카테고리의 다른 글
[TIL] 나의 마흔 다섯 번째 회고록 (1) | 2023.01.27 |
---|---|
[TIL] 나의 마흔 네번째 회고록 (0) | 2023.01.15 |
[TIL] 나의 마흔 두번째 회고록 (0) | 2023.01.10 |
[TIL] 나의 마흔 한번째 회고록 (0) | 2023.01.09 |
[TIL] 나의 마흔 번째 회고록 (0) | 2023.01.06 |