Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
@Stateless public class SchoolServiceBean implements SchoolServiceLocal { @PersistenceContext(unitName = "MyPU") private EntityManager em; // ================= STUDENTS ================= @Override public Students createStudent(Students student) { List
courses = resolveCourses(student); student.setCourses(courses); courses.forEach(c -> c.getStudents().add(student)); em.persist(student); return student; } @Override public Students updateStudent(Students student) { Students existing = em.find(Students.class, student.getStudentId()); if (existing == null) return null; existing.setStudentName(student.getStudentName()); existing.setEmail(student.getEmail()); // Clear old relation existing.getCourses().forEach(c -> c.getStudents().remove(existing)); existing.getCourses().clear(); // Add new relation List
updatedCourses = resolveCourses(student); existing.getCourses().addAll(updatedCourses); updatedCourses.forEach(c -> c.getStudents().add(existing)); return existing; } @Override public void deleteStudent(Integer id) { Students st = em.find(Students.class, id); if (st != null) { st.getCourses().forEach(c -> c.getStudents().remove(st)); st.getCourses().clear(); em.remove(st); } } @Override public Students findStudentById(Integer id) { return em.find(Students.class, id); } @Override public List
findAllStudents() { return em.createQuery("FROM Students", Students.class).getResultList(); } // ================= COURSES ================= @Override public Courses createCourse(Courses course) { List
students = resolveStudents(course); course.setStudents(students); students.forEach(s -> s.getCourses().add(course)); em.persist(course); return course; } @Override public Courses updateCourse(Courses course) { Courses existing = em.find(Courses.class, course.getCourseId()); if (existing == null) return null; existing.setCourseName(course.getCourseName()); existing.setCredits(course.getCredits()); existing.getStudents().forEach(s -> s.getCourses().remove(existing)); existing.getStudents().clear(); List
updatedStudents = resolveStudents(course); existing.getStudents().addAll(updatedStudents); updatedStudents.forEach(s -> s.getCourses().add(existing)); return existing; } @Override public void deleteCourse(Integer id) { Courses c = em.find(Courses.class, id); if (c != null) { c.getStudents().forEach(s -> s.getCourses().remove(c)); c.getStudents().clear(); em.remove(c); } } @Override public Courses findCourseById(Integer id) { return em.find(Courses.class, id); } @Override public List
findAllCourses() { return em.createQuery("FROM Courses", Courses.class).getResultList(); } // ===== Helper: Resolve collections ===== private List
resolveCourses(Students student) { return student.getCourses().stream() .map(c -> em.find(Courses.class, c.getCourseId())) .toList(); } private List
resolveStudents(Courses course) { return course.getStudents().stream() .map(s -> em.find(Students.class, s.getStudentId())) .toList(); } }
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)