getter 不会自动为您创建。每个实体都代表数据库中的一个表,因此您必须创建任何您认为有用的 getter。幸运的是,如果您需要,Service Builder 也能够生成它。
首先,我们要求 Service Builder 创建 和 之间的映射Students
表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>
接下来,我们在 中创建适当的方法CourseLocalServiceImpl
:
public List<Course> getStudentCourses(long studentId)
throws PortalException, SystemException {
return coursePersistence.getCourses(studentId);
}
要从对象中获取Courses
,Student
我们在 generated 中创建方法StudentImpl.java
:
public List<Course> getCourses() throws Exceptions {
return CorseLocalServiceUtil.getStudentCourses(getStudentId());
}
最后,通过运行重新生成您的类ant build-service
。
现在我们可以通过以下方式获取学生正在学习的所有课程:
List<Course> courses = CourseLocalServiceUtil.getStudentCourses(studentId);
或者
List<Course> courses = student.getCourses();