如何为同一主键的多个外键创建liferay Service xml?

时间:2014-05-30 05:23:24

标签: liferay liferay-6 liferay-theme liferay-velocity liferay-aui

enter image description here

我知道这个问题可能会令人困惑,我会以任何方式解释它。

基本上我有两张桌子。学生和课程,其中studentid和courseid是他们相应的主键。

在Student表中我有两个属性courseid和courseidbackup都是课程表的关键(FK)。 这是我正在使用的服务xml,但它显示构建失败。

我在这里缺少什么?如何创建服务xml来实现这一目标?

 <service-builder package-path="com.students.db">
<author>bugs</author>
<namespace>students</namespace>
<entity name="Student" local-service="true" remote-service="true" cache-enabled="false">
<column name="studentId" type="long" primary="true" />
<column name="studentName" type="String" />

<column name="coursesid" type="Collection" entity="Course" mapping-table="Students_Courses"/>
<column name="coursesidbackup" type="Collection" entity="Course" mapping-table="Students_Courses"/>
</entity>
<entity name="Course" local-service="true" remote-service="true" cache-enabled="false">
<column name="courseId" type="long" primary="true" />
<column name="courseName" type="String" />
<column name="courseDetails" type="String" />
<column name="students" type="Collection" entity="Student" mapping-table="Students_Courses" />
</entity>
</service-builder>

1 个答案:

答案 0 :(得分:0)

在这两种情况下,您都会提供相同的映射表 - Students_Courses。尝试例如Students_Backupcourses作为第二选择。否则,我不知道该映射表应该如何处理这种关系。正如评论中所提到的,Liferay通常不会在数据库模型中强制执行任何外键关系,但这会尽可能接近。