【问题标题】:My web service does not return all rows from database even if I specify it to get all rows即使我指定它来获取所有行,我的 Web 服务也不会返回数据库中的所有行
【发布时间】:2012-03-06 12:04:24
【问题描述】:

我有一个网络服务,我想检索属于某个组的所有人员。我已经使用 NetBeans 生成了所有 java 类文件(右键单击项目,选择“新建”,然后选择“来自数据库的实体类”)并且所有类在数据库中都有其对应的表。

数据库架构如下所示:

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类是:

  • 组人
  • GroupPersonPK

我已经用一组和三个人填充了数据库。

在 Web 服务中有一个我命名为 getGroupAndPersons(int groupId) 的方法,它根据 group_id 返回组和所有相关人员。我将named query 称为“GroupPerson.findByGroupId”,它在 GroupPersson 中声明,它只是执行以下操作: SELECT a FROM GroupPerson a WHERE a.groupPersonPK.groupId = :groupId

当我在 PHP 中从 SOAP 调用该方法时,我只得到一个包含所选组和属于该组的 first 人的结果列表,即使有很多人属于该组,也不会超过一个人群组。

所以我的问题是,为什么即使有很多人与一组相关的人,我从 web 服务返回的人也不会超过一个。

【问题讨论】:

  • 您应该发布 Netbeans 为您生成的实体 - 至少是类声明和实例变量(不需要 getters/setters/constructors)。对于这样一个简单的设置,您实际上只需要两个实体(PersonGroup)。关联表的实体是多余的。
  • 但是,如果我想获得选定的组和与之相关的所有人员,我需要调用 GroupPerson,不是吗?

标签: java php web-services soap wsdl


【解决方案1】:

您的 Web 服务方法的返回值是多少,.?应该是List,是你有的吗?

【讨论】:

  • 啊,当然!!!我没有返回数组,只是第一个 GroupPerson 实例,我已经忙了 2 个小时了!谢谢你叫醒我! :-)
猜你喜欢
  • 1970-01-01
  • 2012-03-08
  • 2020-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-19
  • 1970-01-01
相关资源
最近更新 更多