Witam wszystkich,
pracuje nad prosta aplikacja do zapisywania notatek. Mam juz standardowy CRUD. Teraz chcialbym dodać możliwość wersowania nonatek ,czyli gdy edytuje którąś z notatek stara wersja zapisze mi się w historii notatek np. pod id 1.1 lub 1.2 a na ekranie głownym notatek bedzie wyświetlana tylko najnowsza wersja notatki. Czy ktoś ma pomysł jak mniej więcej to zrobić ?
Z góry dziękuje ;-)
Kontoler:
@Controller
public class NoteController {
@Autowired
private NoteService noteService;
//Restowe
// @GetMapping("/notes")
// @ResponseBody
// public List<Note> notes() {
//
// List<Note> notes = new ArrayList<>();
// notes.add(new Note("note", "przykladowa notatka"));
// notes.add(new Note("note2", "przykladowa notatka2"));
//
// return notes;
// }
@GetMapping("/saveNote")
public String addNote(Note note) {
return "addNote";
}
@PostMapping("/saveNote")
public String seveNote(Note note) {
noteService.saveNote(note);
return "redirect:/";
}
//Lista notatek
@GetMapping("/notes")
@ResponseBody
public List<Note> notes(){
return noteService.notes();
}
@GetMapping("/readNote")
@ResponseBody
public Note readNote(Note note) {
// noteService.findById(1L);
return noteService.findById(1);
}
// @GetMapping("/editNote")
//
// public String updateNote(Note note) {
//
// noteService.update(note);
//
// return "addNote";
// }
@GetMapping("/edit/{id}")
public String editNote(@PathVariable Integer id, Model model) {
Note note=noteService.findById(id);
model.addAttribute("note",note);
noteService.update(note);
return "editNote";
}
@PostMapping("/edit/{id}")
public String editNote2(@PathVariable Long id, Note note) {
noteService.update(note);
return "redirect:/allNotes";
}
@RequestMapping("/allNotes")
public String allNotes(Model model) {
model.addAttribute("notes", noteService.notes());
return "allNotes";
}
@GetMapping("/delete/{id}")
public String deleteNote(@PathVariable Integer id, Note note){
noteService.delete(id);
return "redirect:/allNotes";
}
}
Encja:
@Entity
@Table
public class Note {
@Id
@GeneratedValue(strategy= GenerationType.AUTO)
private Integer id;
String title;
String content;
LocalDateTime created;
LocalDateTime modiefied;
public Note(Integer id, String title, String content) {
this.id = id;
this.title = title;
this.content = content;
}
public Note() {
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public LocalDateTime getCreated() {
return created;
}
public void setCreated(LocalDateTime created) {
this.created = created;
}
public LocalDateTime getModiefied() {
return modiefied;
}
public void setModiefied(LocalDateTime modiefied) {
this.modiefied = modiefied;
}
}