<prompt> Unda programu ya wavuti ya Java inayotumia mfumo wa Spring Boot na kuunganisha kwenye hifadhidata ya PostgreSQL. Programu inapaswa kuwa na API RESTful ya kudhibiti orodha ya mambo ya kufanya rahisi na shughuli za msingi za CRUD unda, kusoma, kusasisha, kufuta kwenye majukumu. Kila kazi inapaswa kuwa na kichwa, maelezo, tarehe ya kukamilisha, na hali ya kukamilisha.PLINFORMAT  <response>: java Kazi.javakifurushi com.example.demo;agiza javax.persistence.Entity;agiza javax.persistence.GeneratedValue;agiza javax.persistence.GenerationType;agiza javax.persistence.Id;agiza java.time.LocalDate;EntityKazi ya darasa la umma kitambulisho GeneratedValuemkakati GenerationType.IDENTITY Kitambulisho cha kibinafsi cha muda mrefu; Kichwa cha Kamba ya kibinafsi; maelezo ya Kamba ya kibinafsi; binafsi Tarehe ya kukamilisha Tarehe ya Ndani; boolean ya kibinafsi imekamilika; Wapataji na wawekaji TaskRepository.javakifurushi com.example.demo;agiza org.springframework.data.jpa.repository.JpaRepository;import org.springframework.stereotype.Repository;Hazinainterface ya umma TaskRepository inapanua JpaRepository TaskController.javakifurushi com.example.demo;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.;agiza java.util.List;RestControllerRequestMappingtasksTaskController ya darasa la umma Ina waya otomatiki Hifadhi ya kibinafsi ya TaskRepository; GetMapping Public List getAllTasks rudisha kaziRepository.findAll; PostMapping public Task createTaskRequestBody Task task rudisha kaziRepository.hifadhikazi; GetMappingid public Task getTaskByIdPathVariable Long id return taskRepository.findByIdid.orElseThrow - new RuntimeExceptionTask not found; PutMappingid sasisho la Kazi la ummaTaskPathVariable Kitambulisho kirefu, RequestBody Task updatedTask rudisha kaziRepository.findByIdid.maptask - task.setTitleupdatedTask.getTitle; task.setDescriptionupdatedTask.getDescription; task.setDueDateupdatedTask.getDueDate; task.setCompletedupdatedTask.isCompleted; rudisha kaziRepository.hifadhikazi; .auElseThrow - RuntimeException mpyaTask haipatikani; DeleteMappingid utupu wa umma deleteTaskPathVariable Long id taskRepository.deleteByIdid; xml org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-data-jpa org.postgresql postgresql muda wa utekelezaji mali maombi.sifaspring.datasource.urljdbc:postgresql:localhost:5432mydbspring.datasource.usernamemyuserspring.datasource.passwordmypasswordspring.jpa.hibernate.ddl-autosasisha 