@Lombok
๐ Lombok ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ Getter/Setter, ToString ๊ณผ ๊ฐ์ ๋ฐ๋ณต์ ์ธ ์๋ฐ ์ฝ๋๋ฅผ ์ปดํ์ผํ ๋ ์๋์ผ๋ก ์์ฑํด์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
์ด๋ ธํ ์ด์ | ์ค๋ช |
@Getter/Setter | ์ฝ๋๋ฅผ ์ปดํ์ผํ ๋ ์์ฑ๋ค์ ๋ํ Getter/Setter ๋ฉ์๋ ์์ฑ |
@ToString | toString() ๋ฉ์๋ ์์ฑ |
@ToString(exclude={”๋ณ์๋ช ”} | ์ํ์ง ์๋ ์์ฑ ์ ์ธํ toString()๋ฉ์๋ ์์ฑ |
@NonNull | ํด๋น ๋ณ์๊ฐ null ์ฒดํฌ, NullPointerException ์์ธ ๋ฐ์ |
@EqualsAndHashCode | equals()์ hashCode() ๋ฉ์๋ ์์ฑ |
@Builder | ๋น๋ ํจํด์ ์ด์ฉํ ๊ฐ์ฒด ์์ฑ |
@NoArgsConstructor | ํ๋ผ๋ฏธํฐ๊ฐ ์๋ ๊ธฐ๋ณธ ์์ฑ์ ์์ฑ |
@AllArgsConstructor | ๋ชจ๋ ์์ฑ์ ๋ํ ์์ฑ์ ์์ฑ |
@RequiredArgsConstructor | ์ด๊ธฐํ๋์ง ์์ Final, @NonNull ์ด๋ ธํ ์ด์ ์ด ๋ถ์ ํ๋์ ๋ํ ์์ฑ์ ์์ฑ |
@Log | log ๋ณ์ ์๋ ์์ฑ |
@Value | ๋ถ๋ณ(immutable) ํด๋์ค ์์ฑ |
@Data | @ToString, @EqualsAndHashCode, @Getter, @Setter, @RequiredArgsConstructor๋ฅผ ํฉ์น ์ด๋ ธํ ์ด์ |
Entity Mapping ๊ด๋ จ ์ด๋ ธํ ์ด์
์ด๋ ธํ ์ด์ | ์ค๋ช |
@Entity | ํด๋์ค๋ฅผ ์ํฐํฐ๋ก ์ ์ธ (JPA์ ์ํฐํฐ ํด๋์ค๋ผ๋ ๊ฒ์ ์๋ ค์ค) |
@Table | ์ํฐํฐ์ ๋งคํํ ํ ์ด๋ธ์ ์ง์ |
@Id | ํ ์ด๋ธ์ ๊ธฐ๋ณธํค์ ์ฌ์ฉํ ์์ฑ์ ์ง์ |
@GeneratedValue | ํค ๊ฐ์ ์์ฑํ๋ ์ ๋ต ๋ช ์ |
@Column | ํ๋์ ์ปฌ๋ผ ๋งคํ |
@Lob | BLOB, CLOB ํ์ ๋งคํ |
@CreationTimestamp | insert ์ ์๊ฐ ์๋ ์ ์ฅ |
@UpdateTimestamp | update ์ ์๊ฐ ์๋ ์ ์ฅ |
@Enumerated | enum ํ์ ๋งคํ |
@Transient | ํด๋น ํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋งคํ ๋ฌด์ |
@Temporal | ๋ ์ง ํ์ ๋งคํ |
@CreateDate | ์ํฐํฐ๊ฐ ์์ฑ๋์ด ์ ์ฅ๋ ๋ ์๊ฐ ์๋ ์ ์ฅ |
@LastModifiedDate | ์กฐํํ ์ํฐํฐ์ ๊ฐ์ ๋ณ๊ฒฝํ ๋ ์๊ฐ ์๋ ์ ์ฅ |
๐ก CLOB๊ณผ BLOB ์๋ฏธ
CLOB ์ด๋ ์ฌ์ด์ฆ๊ฐ ํฐ ๋ฐ์ดํฐ๋ฅผ ์ธ๋ถ ํ์ผ๋ก ์ ์ฅํ๊ธฐ ์ํ ๋ฐ์ดํฐ ํ์ . ๋ฌธ์ํ ๋์ฉ๋ ํ์ผ์ ์ ์ฅํ๋๋ฐ ์ฌ์ฉ
BLOB ์ด๋ ๋ฐ์ด๋๋ฆฌ ๋ฐ์ดํฐ๋ฅผ DB ์ธ๋ถ์ ์ ์ฅํ๊ธฐ ์ํ ํ์ . ์ด๋ฏธ์ง, ์ฌ์ด๋, ๋น๋์ค ๊ฐ์ ๋ฉํฐ๋ฏธ๋์ด ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃฐ ๋ ์ฌ์ฉ
@Column ์์ฑ
์์ฑ | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ |
name | ํ๋์ ๋งคํํ ์ปฌ๋ผ์ ์ด๋ฆ ์ค์ | ๊ฐ์ฒด์ ํ๋ ์ด๋ฆ |
unique(DDL) | ์ ๋ํฌ ์ ์ฝ ์กฐ๊ฑด ์ค์ | |
insertable | insert ๊ฐ๋ฅ ์ฌ๋ถ | true |
updatable | update ๊ฐ๋ฅ ์ฌ๋ถ | true |
length | String ํ์ ์ ๋ฌธ์ ๊ธธ์ด ์ ์ฝ์กฐ๊ฑด ์ค์ | 255 |
nullable(DDL) | null ๊ฐ์ ํ์ฉ ์ฌ๋ถ ์ค์ . false ์ค์ ์ DDL ์์ฑ ์์ not null ์ ์ฝ ์กฐ๊ฑด ์ถ๊ฐ | |
columnDefinition | ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ปฌ๋ผ ์ ๋ณด ์ง์ ๊ธฐ์ ex. @Column(columnDefinition = "varchar(5) default'10' not null") |
|
precision, scale(DDL) | BigDecimal ํ์
์์ ์ฌ์ฉ(BigInteger ๊ฐ๋ฅ) precision์ ์์์ ์ ํฌํจํ ์ ์ฒด ์๋ฆฌ์์ด๊ณ , scale์ ์์์ ์๋ฆฌ์. Double๊ณผ float ํ์ ์๋ ์ ์ฉ๋์ง ์์. |
๐ก DDL(Data Definition Language)
ํ ์ด๋ธ, ์คํค๋ง, ์ธ๋ฑ์ค, ๋ทฐ, ๋๋ฉ์ธ์ ์ ์, ๋ณ๊ฒฝ, ์ ๊ฑฐํ ๋ ์ฌ์ฉํ๋ ์ธ์ด.
๊ฐ๋ น, ํ ์ด๋ธ์ ์์ฑํ๊ฑฐ๋ ์ญ์ ํ๋ CREATE, DROP ๋ฑ์ด ์ด์ ํด๋น
@GeneratedValue
๐ Entity ํด๋์ค๋ ๋ฐ๋์ ๊ธฐ๋ณธํค๋ฅผ ๊ฐ์ ธ์ผ ํจ
์์ฑ ์ ๋ต | ์ค๋ช |
GenerationType.AUTO(default) | JPA ๊ตฌํ์ฒด๊ฐ ์๋์ผ๋ก ์์ฑ ์ ๋ต ๊ฒฐ์ |
GenerationType.IDENTITY | ๊ธฐ๋ณธํค ์์ฑ์ DB์ ์์ ex. MySQL ์ ๊ฒฝ์ฐ AUTO_INCREMENT๋ฅผ ์ฌ์ฉํ์ฌ ๊ธฐ๋ณธํค ์์ฑ |
GenerationType.SEQUENCE | DB ์ํ์ค ์ค๋ธ์ ํธ๋ฅผ ์ด์ฉํ ๊ธฐ๋ณธํค ์์ฑ @SequenceGenerator๋ฅผ ์ฌ์ฉํ์ฌ ์ํ์ค ๋ฑ๋ก ํ์ |
GenerationType.TABLE | ํค ์์ฑ์ฉ ํ ์ด๋ธ ์ฌ์ฉ. @TableGenerator ํ์ |
๐ ๊ด๋ จ๊ธ
2024.02.24 - [Database/MySQL] - [MySQL] ์ ์ฝ์กฐ๊ฑด | ์ผ๋ จ๋ฒํธ, ์ํ์ค, AUTO_INCREMENT
* ๋ด์ฉ ์ฐธ๊ณ : ์ฑ '์คํ๋ง๋ถํธ ์ผํ๋ชฐ ํ๋ก์ ํธ with JPA'
'Spring & Spring Boot' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
JpaRepository method, Query method (0) | 2024.07.31 |
---|---|
spring boot ์์ h2 database ์ฌ์ฉํ๊ธฐ (IntelliJ Ultimate) (0) | 2024.07.26 |
[Spring Boot] ๋๊ธ ๋ฑ๋ก ยท ์์ ยท ์ญ์ (0) | 2024.06.07 |
[Spring Boot] ๋น๋๊ธฐ์ฒ๋ฆฌ์ Axios, ๋๊ธ ๋ชฉ๋ก ์ฒ๋ฆฌ (1) | 2024.06.03 |
[Spring Boot] ๋๊ธ ์ปจํธ๋กค๋ฌ ๊ณ์ธต ๊ตฌํ (0) | 2024.06.01 |