Recipients are not automatically created for you. Each object represents a table in the database, so you will need to create any getters that you find useful. Fortunately, Service Builder is also able to generate this if you need to.
First, we ask Service Builder to create a mapping table between Students and Courses .
<entity name="Student" local-service="true" remote-service="true" cache-enabled="false"> <column name="studentId" type="long" primary="true" /> <column name="courses" type="Collection" entity="Course" mapping-table="Courses_Students" /> </entity> <entity name="Course" local-service="true" remote-service="true" cache-enabled="false"> <column name="courseId" type="long" primary="true" /> <column name="students" type="Collection" entity="Student" mapping-table="Courses_Students" /> </entity>
Then we will create the corresponding method in CourseLocalServiceImpl :
public List<Course> getStudentCourses(long studentId) throws PortalException, SystemException { return coursePersistence.getCourses(studentId); }
To get Courses from the Student object, we create a method inside the generated StudentImpl.java :
public List<Course> getCourses() throws Exceptions { return CorseLocalServiceUtil.getStudentCourses(getStudentId()); }
Finally, restore your classes by running ant build-service .
Now we can get all the courses that the student takes by writing:
List<Course> courses = CourseLocalServiceUtil.getStudentCourses(studentId);
or
List<Course> courses = student.getCourses();
source share