ꡬν κΈ°λ₯
μμ
μν μν°ν° μ½λ :
item.java
import jakarta.persistence.*;
import jpabook.jpashop.domain.Category;
import jpabook.jpashop.exception.NotEnoughStockException;
import lombok.Getter;
import lombok.Setter;
import java.util.ArrayList;
import java.util.List;
@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE) // μμ κ΄κ³ 맀ν -> ν ν
μ΄λΈμ λͺ¨λ λ£λ λ°©μ
@DiscriminatorColumn(name = "dtype")
@Getter @Setter
public abstract class Item {
@Id
@GeneratedValue
@Column(name = "item_id")
private Long id;
private String name;
private int price;
private int stockQuantity;
@ManyToMany(mappedBy = "items")
private List<Category> categories = new ArrayList<>();
**//==λΉμ¦λμ€ λ‘μ§==// -> λ°μ΄ν°λ₯Ό κ°μ§κ³ μλ μͺ½μ λΉμ¦λμ€ λ©μλκ° μλ κ²μ΄ μμ§λ ₯μ΄ λμ
/**
* stock μ¦κ°
*/
public void addStock(int quantity) {
this.stockQuantity += quantity;
}
/**
* stock κ°μ
*/
public void removeStock(int quantity) {
int restStock = this.stockQuantity - quantity;
if (restStock < 0) {
throw new NotEnoughStockException("need more stock");
}
this.stockQuantity = restStock;
}**
}