public void addStock(int quantity) {
this.stockQuantity += quantity;
}
public void removeStock(int quantity) {
int restQuantity = this.stockQuantity - quantity;
if (restQuantity < 0) {
throw new NotEnoughStockException("Need more Stock");
}
this.stockQuantity = restQuantity;
}
addStock()
: 파라미터로 넘어온 수만큼 재고를 늘린다.removeStock()
: 파라미터로 넘어온 수만큼 재고를 줄인다.→ setter를 이용해 필드 값을 업데이트 하는 대신 객체지향적으로 핵심 비즈니스 로직을 엔티티에 추가
save()
id
가 없으면 신규로 보고 persist()
실행id
가 있으면 이미 데이터베이스에 저장된 엔티티를 수정한다고 보고, merge()
를 실행
상품 서비스는 상품 리포지토리에 단순히 위임만 하는 클래스