У меня есть веб-сервис, на котором я хотел бы получить всех лиц, принадлежащих группе. Я сгенерировал все файлы классов Java с помощью NetBeans (щелкните правой кнопкой мыши проект, выберите «Новый», а затем выберите «Классы сущностей из базы данных»), и у всех классов есть соответствующая таблица в базе данных.
Схема базы данных выглядит примерно так:
Person
PK person_id: INT
person_name : VARCHAR
GroupPerson
pfK person_id: INT
pfK group_id: INT
Group
PK group_id: INT
group_name : VARCHAR
Четыре сгенерированных Java-класса:
- Человек
- GroupPerson
- GroupPersonPK
- * Группа 1015 *
Я заполнил базу данных одной группой и тремя людьми.
В веб-сервисе есть метод, который я назвал getGroupAndPersons(int groupId)
, который возвращает группу и всех связанных лиц на основе group_id. Я вызываю named query
с именем «GroupPerson.findByGroupId», который объявлен в GroupPersson, и он просто выполняет:
SELECT a FROM GroupPerson a WHERE a.groupPersonPK.groupId = :groupId
Когда я вызываю метод из SOAP в PHP, я просто получаю список результатов, содержащий выбранную Группу и первое лицо, принадлежащее группе, никогда не более одного человека, даже если есть много людей, принадлежащих к группа.
Поэтому мой вопрос заключается в том, почему я никогда не возвращаю более одного человека из веб-службы, даже если есть много людей, связанных с одной группой.