<prompt> Tengeneza programu ya Java Spring Boot na API ya RESTful inayoauni kuunda, kusoma, kusasisha na kufuta madokezo yaliyohifadhiwa katika hifadhidata ya PostgreSQL.PLINFORMAT  <response>: javaagiza javax.persistence.Entity;agiza javax.persistence.GeneratedValue;agiza javax.persistence.GenerationType;agiza javax.persistence.Id;Entitydarasa la umma Kumbuka kitambulisho GeneratedValuemkakati GenerationType.IDENTITY Kitambulisho cha kibinafsi cha muda mrefu; Kichwa cha Kamba ya kibinafsi; Maudhui ya Kamba ya kibinafsi; Wapataji na wawekajiagiza org.springframework.data.jpa.repository.JpaRepository;import org.springframework.stereotype.Repository;agiza com.example.notes.model.Note;Hazinakiolesura cha umma NoteRepository huongeza JpaRepository import org.springframework.beans.factory.annotation.Autowired;kuagiza org.springframework.stereotype.Service;agiza com.example.notes.model.Note;leta com.example.notes.repository.NoteRepository;agiza java.util.List;HudumaNoteService ya darasa la umma Ina waya otomatiki binafsi NoteRepository noteRepository; Public List findAll rejea noteRepository.findAll; Notisi ya umma findByIdkitambulisho kirefu rejea noteRepository.findByIdid.orElsenull; uhifadhi wa dokezo la ummaNote note rejea daftariRepository.savenote; utupu wa umma deleteByIdkitambulisho kirefu noteRepository.deleteByIdid; import org.springframework.beans.factory.annotation.Autowired;agiza org.springframework.http.HttpStatus;agiza org.springframework.http.ResponseEntity;import org.springframework.web.bind.annotation.;agiza com.example.notes.model.Note;agiza com.example.notes.service.NoteService;agiza java.util.List;RestControllerRequestMappingapinotesNoteController ya darasa la umma Ina waya otomatiki noti ya huduma ya kibinafsi Huduma; GetMapping Public ResponseEntity getAllNotes rudisha ResponseEntity.oknoteService.findAll; GetMappingid Public ResponseEntity getNoteByIdPathVariable Long id Kumbuka kumbuka noteService.findByIdid; ikiwa kumbuka null rudisha ResponseEntity.notFound.jenga; rudisha ResponseEntity.oknote; PostMapping Public ResponseEntity createNoteRequestBody Note note rudisha ResponseEntity.statusHttpStatus.CREATED.mwilinoteService.hifadhinote; PutMappingid Public ResponseEntity updateNotePathVariable Long id, RequestBody Note updatedNote Kumbuka zilizopoNote noteService.findByIdid; ikiwa Kumbuka iliyopo null rudisha ResponseEntity.notFound.jenga; updatedNote.setIdid; rudisha ResponseEntity.oknoteService.saveupdatedNote; DeleteMappingid public ResponseEntity deleteNotePathVariable Long id Kumbuka kumbuka noteService.findByIdid; ikiwa kumbuka null rudisha ResponseEntity.notFound.jenga; noteService.deleteByIdid; rudisha ResponseEntity.noContent.jenga; 