The getters are not automatically created for you. Each entity represents a table in the database so you'll have to create any getters that you'd find useful. Luckily, Service Builder is also capable of generating this if you need.
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>
Next, we create the appropriate 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 method inside the generated StudentImpl.java
:
public List<Course> getCourses() throws Exceptions {
return CorseLocalServiceUtil.getStudentCourses(getStudentId());
}
Finally, regenerate your classes by running ant build-service
.
Now we can get all the courses a student is taking by writing:
List<Course> courses = CourseLocalServiceUtil.getStudentCourses(studentId);
or
List<Course> courses = student.getCourses();