package so.ego.re_darling.domains.coupon.domain;
import lombok.*;
import javax.persistence.*;
import java.time.LocalDateTime;
@AllArgsConstructor(access = AccessLevel.PROTECTED)
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@Table(name = "coupon")
@Entity
public class Coupon {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@NonNull private String title;
private String content;
private LocalDateTime useDate;
@Enumerated(value = EnumType.STRING)
private CouponStatus status;
@Builder
public Coupon(@NonNull String title, String content, LocalDateTime useDate, CouponStatus status) {
this.title = title;
this.content = content;
this.useDate = useDate;
this.status = status;
}
}
- Entity class์ ํ๋์ ์ ๊ทผ์ ์ด์๋ ์์ ํ๊ฒ private ์ผ๋ก ์ค์ ํ๋ค.
- Entity๋ DB ํ ์ด๋ธ์ ์กด์ฌํ๋ Column๋ค์ ํ๋๋ก ๊ฐ์ง๋ ๊ฐ์ฒด์ด๋ค. ( DB์ ํ ์ด๋ธ๊ณผ 1๋1๋ก ๋์๋๋ค. )
1. @AllArgsConstructor
- NotNull์ด๋ final ์ด ๋ถ์ ํ๋๋ ์์ฑ์๋ฅผ ๋ง๋ค์ด์ค๋ค.
- ํด๋์ค์ ์กด์ฌํ๋ ๋ชจ๋ ํ๋์ ๋ํ ์์ฑ์๋ฅผ ์๋์ผ๋ก ์์ฑํด์ค๋ค.
- @NonNull ์ด ์๋ค๋ฉด ์์ฑ์ ๋ด์์ null-check ๋ก์ง์ ์๋์ ์ผ๋ก ์์ฑํด์ค๋ค.
2. @NoArgsConstructor
- ํ๋ผ๋ฏธํฐ๊ฐ ์๋ ์์ฑ์๋ฅผ ์์ฑํ๋ค.
- Entity ๋ ๋ฐ๋์ ํ๋ผ๋ฏธํฐ๊ฐ ์๋ ์์ฑ์๊ฐ ์์ด์ผ ํ๊ณ public์ด๋ protected์ฌ์ผ ํ๋ค. (access ๊ฑธ์ด์ค ์ด์ )
- JpaRepository์์ ์ฌ์ฉํ๊ธฐ ์ํด ๊ธฐ๋ณธ ์์ฑ์๋ฅผ ๋ง๋ค์ด์ค๋ค.
3. @NonNull
- NotNull ์ธ ํ๋์ SQL ์ฟผ๋ฆฌ๋ฅผ ๋ณด๋ด๊ธฐ ์ ์ ๋ฏธ๋ฆฌ ์์ธ๋ฅผ ๋ฐ์์ํค๊ธฐ ์ํด ์ ์ฉ
4. @Enumerated
- EnumType.STRING ์ ์ฌ์ฉํ๋ฉด enum ํ์ ๊ทธ๋๋ก DB์ ์ ์ฅ๋๋ค.
- EnumType.ORDINAL ์ ์ฌ์ฉํ๋ฉด enum ํ์ ์ ์์๋ฅผ DB์ ์ ์ฅํ๋ค. (๋น์ถ)
5. @Builder
Setter๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ฉด Entity์ ์ธ์คํด์ค ๊ฐ๋ค์ด ์ธ์ ์ด๋์ ๋ณ๊ฒฝ๋๋์ง ๋ช ํํ๊ฒ ์ ์ ์๋ค.
๊ทธ๋ ๋ค๊ณ ํด์ ์์ฑ์๋ก ํ๋์ ๊ฐ์ ๋ฃ์ด์ฃผ๋๊ฒ ๋ํ ์ํํ๋ค (ํ์ฌ ๋ฃ๋ ๊ฐ์ด ์ด๋ค ํ๋์ ๊ฐ์ธ์ง ์ ์ ์๋ค.)
๋ฐ๋ผ์ Builder ํจํด์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค.
ํ๋๊ฐ ๋ง์์ง๋๋ผ๋ ์ด๋ค ๊ฐ์ ์ด๋ค ํ๋์ ๋ฃ๋์ง ์ฝ๋๋ฅผ ํตํด ํ์ธํ ์ ์๋ค.
ํ๋ก์ ํธ๋ฅผ ์์ ํ๋ฉด์
์ง์์ ์ผ๋ก ์ถ๊ฐ/์์ ๋ฐ์ํ ์์ !
'Project > DARLING' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
7. CI/CD ๊ณํ (0) | 2022.02.09 |
---|---|
6. ๋ฌด์์ด ๋ฌธ์ ์ผ๊น ... (0) | 2022.01.25 |
5. Spring REST Docs ์ฌ์ฉ (0) | 2022.01.24 |
4. ์ฐ๊ด๊ด๊ณ - OneToMany (0) | 2022.01.23 |
3. ์ฐ๊ด๊ด๊ณ - ManyToOne (0) | 2022.01.23 |