diff --git a/src/main/java/com/github/cleanddd/model/Course.java b/src/main/java/com/github/cleanddd/model/Course.java index 71232c7..70180d3 100644 --- a/src/main/java/com/github/cleanddd/model/Course.java +++ b/src/main/java/com/github/cleanddd/model/Course.java @@ -34,7 +34,7 @@ public class Course { } public Course enrollStudent() { - return newCourse().numberOfStudents(numberOfStudents.get() + 1).build(); + return newCourse().numberOfStudents(numberOfStudents.incrementAndGet()).build(); } private CourseBuilder newCourse() { diff --git a/src/main/java/com/github/cleanddd/usecase/EnrollStudentUseCase.java b/src/main/java/com/github/cleanddd/usecase/EnrollStudentUseCase.java index 8bda915..1918fb2 100644 --- a/src/main/java/com/github/cleanddd/usecase/EnrollStudentUseCase.java +++ b/src/main/java/com/github/cleanddd/usecase/EnrollStudentUseCase.java @@ -72,7 +72,8 @@ public class EnrollStudentUseCase implements EnrollStudentInputPort { persistenceOps.persist(enrollResult.getStudent()); final Course course = persistenceOps.obtainCourseById(courseId); - persistenceOps.persist(course.enrollStudent()); + final Course updatedCourse = course.enrollStudent(); + persistenceOps.persist(updatedCourse); } // present the result of enrollment