stock(재고)관리를 쉽게 하기 위해 Item Entity에 추가
📍Item
public void addStock(int quantity){
this.stockQuantity += quantity;
}
public void removeStock(int quantity){
int restStock = this.stockQuantity - quantity;
if(restStock < 0){
throw new NotEnoughStockException("need more stock");
}
this.stockQuantity = restStock;
}
📍exception/NotEnoughStockExcepion 생성
public class NotEnoughStockException extends RuntimeException{}
📍ItemRepository 생성
@Repository, @RequestArgsConstructor 추가
: EntityManager 선언
📍ItemService 생성
@Service
@Transactional(readOnly = true)
@RequiredArgsConstructor
기능
@Transactional
public void saveItem(Item item){
itemRepository.save((item));
}
ItemService 자체 @Transactional를 readOnly로 해뒀기 때문에 saveItem에 @Transactional 지정 안하면 저장이 되지 않는다.
즉. 메서드에 가까운 게 우선권을 가진다.