Как создать Liferay Service XML для нескольких внешних ключей одного и того же первичного ключа?
Я знаю, что этот вопрос может сбить с толку, и я объясню его любыми способами.
В основном у меня есть две таблицы. Студент и курс, где 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>
2 ответа
Вы даете одну и ту же таблицу сопоставления - Students_Courses - в обоих случаях. Попробуйте, например, Students_Backupcourses как второй вариант. В противном случае я был бы озадачен тем, как эта таблица сопоставления должна обрабатывать эти отношения. Как уже упоминалось в комментариях, обычно Liferay не применяет никаких отношений внешних ключей в модели db, но это будет настолько близко, насколько это возможно.
изменить свое сопоставление-table="Students_Courses"
к этому--> сопоставление-table="Students_Course"