diff --git a/src/main/java/com/example/library/demo/Menu.java b/src/main/java/com/example/library/demo/Menu.java index 03c35b78..3bf5f799 100644 --- a/src/main/java/com/example/library/demo/Menu.java +++ b/src/main/java/com/example/library/demo/Menu.java @@ -174,6 +174,7 @@ public void executeCommand() { LocalDateTime todayDate = LocalDateTime.now(); LocalDateTime returnDate = todayDate.plusDays(7); Issue issue = new Issue(todayDate,returnDate,student,bookIssue); + libraryService.addIssue(issue); student.addIssue(issue); bookIssue.setQuantity(bookIssue.getQuantity()-1); libraryService.addBook(bookIssue); @@ -187,6 +188,28 @@ public void executeCommand() { break; case 7: // Call listBooksByUsn method + // Ask for student usn and check if already exists + System.out.println("Enter student usn: "); + String studentUsn2 = scanner.nextLine(); + + Student student2; + Optional studentOptional2 = libraryService.findStudentByUsn(studentUsn2); + if (!studentOptional2.isPresent()) { + System.out.println("Student with usn " + studentUsn2 + " not found."); + break; + } else { + student2 = studentOptional2.get(); + List studentIssues = student2.getIssues(); + if (studentIssues.isEmpty()) { + System.out.println("Student " + student2.getName() + " has no issued books."); + } else { + System.out.println(student2.getName() + "'s issued books: "); + System.out.println("Book Title Student Name Return date"); + for (Issue issue : studentIssues) { + issue.printIssueInfo(); + } + } + } break; case 8: System.out.println("Exiting program."); diff --git a/src/main/java/com/example/library/demo/model/Issue.java b/src/main/java/com/example/library/demo/model/Issue.java index f33df03e..634e49d9 100644 --- a/src/main/java/com/example/library/demo/model/Issue.java +++ b/src/main/java/com/example/library/demo/model/Issue.java @@ -86,4 +86,8 @@ public boolean equals(Object o) { public int hashCode() { return Objects.hash(issueId, issueDate, returnDate, issueStudent, issueBook); } + + public void printIssueInfo() { + System.out.printf("%-20s %-20s %-15s\n", issueBook.getTitle(), issueStudent.getName(), returnDate); + } } diff --git a/src/main/java/com/example/library/demo/model/Student.java b/src/main/java/com/example/library/demo/model/Student.java index 0fbe2fbb..567ef676 100644 --- a/src/main/java/com/example/library/demo/model/Student.java +++ b/src/main/java/com/example/library/demo/model/Student.java @@ -13,7 +13,7 @@ public class Student { @Column(name = "student_name") private String name; - @OneToMany(mappedBy = "issueStudent", orphanRemoval = true) + @OneToMany(mappedBy = "issueStudent", cascade = CascadeType.ALL, fetch = FetchType.EAGER, orphanRemoval = true) private List issues = new ArrayList<>(); public Student() { diff --git a/src/main/java/com/example/library/demo/service/LibraryService.java b/src/main/java/com/example/library/demo/service/LibraryService.java index 3f16ad96..e966c7f0 100644 --- a/src/main/java/com/example/library/demo/service/LibraryService.java +++ b/src/main/java/com/example/library/demo/service/LibraryService.java @@ -82,6 +82,10 @@ public List findBooksByAuthor(Author author){ return bookRepository.findAllByAuthor(author.getAuthorId()); } + // Issue Repository + public void addIssue (Issue issue) { + issueRepository.save(issue); + } /*public List findByUsn(Student student){ return bookRepository.findAllByUsn(student.getUsn()); }*/ diff --git a/target/classes/com/example/library/demo/Menu.class b/target/classes/com/example/library/demo/Menu.class index 3a9d0511..e901f383 100644 Binary files a/target/classes/com/example/library/demo/Menu.class and b/target/classes/com/example/library/demo/Menu.class differ diff --git a/target/classes/com/example/library/demo/model/Author.class b/target/classes/com/example/library/demo/model/Author.class index 6f8ba1ba..b4ba8603 100644 Binary files a/target/classes/com/example/library/demo/model/Author.class and b/target/classes/com/example/library/demo/model/Author.class differ diff --git a/target/classes/com/example/library/demo/model/Book.class b/target/classes/com/example/library/demo/model/Book.class index ef131c3d..c2e32213 100644 Binary files a/target/classes/com/example/library/demo/model/Book.class and b/target/classes/com/example/library/demo/model/Book.class differ diff --git a/target/classes/com/example/library/demo/model/Issue.class b/target/classes/com/example/library/demo/model/Issue.class index 89ccad44..5edaceb7 100644 Binary files a/target/classes/com/example/library/demo/model/Issue.class and b/target/classes/com/example/library/demo/model/Issue.class differ diff --git a/target/classes/com/example/library/demo/model/Student.class b/target/classes/com/example/library/demo/model/Student.class index 81515a7d..e44203f5 100644 Binary files a/target/classes/com/example/library/demo/model/Student.class and b/target/classes/com/example/library/demo/model/Student.class differ diff --git a/target/classes/com/example/library/demo/service/LibraryService.class b/target/classes/com/example/library/demo/service/LibraryService.class index 0d11d12c..67731a14 100644 Binary files a/target/classes/com/example/library/demo/service/LibraryService.class and b/target/classes/com/example/library/demo/service/LibraryService.class differ