gpt4 book ai didi

Liferay 服务生成器 6.2 : Many to one relationships

转载 作者:行者123 更新时间:2023-12-04 10:07:19 24 4
gpt4 key购买 nike

我想创建一对多的关系,我使用了以下 service.xml:

<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"/>
</entity>

<entity name="Course" local-service="true" remote-service="true" cache-enabled="false">
<column name="courseId" type="long" primary="true" />
<column name="studentId" type="long"/>
</entity>

我的问题是没有为集合方法创建任何内容。没有异常(exception),什么都没有。
生成了类,并且有简单的 getter 方法,但没有 getCourse()。

我做错了什么?

最佳答案

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我们在生成的对象中创建方法 StudentImpl.java :
public List<Course> getCourses() throws Exceptions {
return CorseLocalServiceUtil.getStudentCourses(getStudentId());
}

最后,通过运行 ant build-service 重新生成您的类.

现在我们可以通过编写获得学生正在学习的所有类(class):
List<Course> courses = CourseLocalServiceUtil.getStudentCourses(studentId);

或者
List<Course> courses = student.getCourses();

关于Liferay 服务生成器 6.2 : Many to one relationships,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24273631/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com