<prompt> Unda Java Spring Boot RESTful API inayofichua ncha za kuunda, kusoma, kusasisha na kufuta bidhaa kwenye rukwama ya ununuzi. Tumia PostgreSQL kama hifadhidata ya nyuma.PLINFORMAT  <response>: javakifurushi com.example.shoppingcart.model;agiza javax.persistence.Entity;agiza javax.persistence.GeneratedValue;agiza javax.persistence.GenerationType;agiza javax.persistence.Id;EntityBidhaa ya darasa la umma kitambulisho GeneratedValuemkakati GenerationType.IDENTITY Kitambulisho cha kibinafsi cha muda mrefu; jina la kamba ya kibinafsi; binafsi Bei mbili; Idadi ya Nambari ya kibinafsi; Wapataji na wawekajikifurushi com.example.shoppingcart.repository;agiza com.example.shoppingcart.model.Item;agiza org.springframework.data.jpa.repository.JpaRepository;import org.springframework.stereotype.Repository;Hazinainterface ya umma ItemRepository inapanua JpaRepository kifurushi com.example.shoppingcart.controller;agiza com.example.shoppingcart.model.Item;agiza com.example.shoppingcart.repository.ItemRepository;import org.springframework.beans.factory.annotation.Autowired;agiza org.springframework.http.ResponseEntity;import org.springframework.web.bind.annotation.;agiza java.util.List;RestControllerRequestMappingapivitudarasa la umma ShoppingCartController Ina waya otomatiki Kipengee cha kibinafsi cha Hifadhi; Unda kipengee PostMapping Unda Kipengee cha ummaRequestBody Bidhaa rudisha kipengeeRepository.savekipengee; Pata vitu vyote GetMapping Public List getAllItems rudisha kipengeeRepository.findAll; Pata bidhaa kwa kitambulisho GetMappingid public ResponseEntity getItemByIdPathVariable Long id rudisha kipengeeRepository.findByIdid .ramanikipengee - ResponseEntity.ok.mwilikipengee .auVingineResponseEntity.notFound.build; Sasisha kipengee PutMappingid public ResponseEntity updateItemPathVariable Long id, RequestBody Bidhaa updatedItem rudisha kipengeeRepository.findByIdid .ramanikipengee - item.setNameupdatedItem.getName; item.setPriceupdatedItem.getPrice; item.setQuantityupdatedItem.getQuantity; rudisha ResponseEntity.ok.mwiliitemRepository.hifadhikitu; .auVingineResponseEntity.notFound.build; Futa kipengee DeleteMappingid public ResponseEntity deleteItemPathVariable Long id rudisha kipengeeRepository.findByIdid .ramanikipengee - itemRepository.deleteByIdid; rudisha ResponseEntity.ok.jenga; .auVingineResponseEntity.notFound.build; 