2012-03-06 9 views
0

グループに所属するすべての人物を検索したいWebサービスがあります。私はNetBeans(プロジェクトを右クリックして "New"を選択し、 "Entity classes from database"を選択)を使ってすべてのJavaクラスファイルを生成し、すべてのクラスは対応するテーブルをデータベースに持っています。すべての行を取得するために指定しても、Webサービスがデータベースからすべての行を返しません。

データベーススキーマは、次のようなものになります。

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 

を生成された4 Javaクラスは次のとおりです。

  • GroupPerson
  • GroupPersonPK
  • グループ

私はデータベースを1つのグループと3人で設定しました。

Webサービスでは、groupとidに基づいてグループと関連するすべての人物を返すgetGroupAndPersons(int groupId)という名前のメソッドがあります。私はGroupPerssonで宣言されている「GroupPerson.findByGroupId」と呼ばれるnamed queryを呼び出し、それだけで行います。 SELECT a FROM GroupPerson a WHERE a.groupPersonPK.groupId = :groupId

私はPHPでSOAPからメソッドを呼び出すと、私はちょうど選択したグループと最初を含むresultlistを取得グループに所属する人が多いにもかかわらず、グループに所属する人。

私の質問は、1つのグループに関連する人が多くても、Webサービスから複数の人が返されることがないことです。

+0

Netbeansが生成したエンティティ(少なくともクラス宣言とインスタンス変数)を投稿する必要があります(getters/setters/constructorsを必要としません)。このような簡単な設定のためには、実際には2つのエンティティ( 'Person'と' Group')のみが必要です。アソシエーションテーブルのエンティティは過剰です。 – Perception

+0

選択したグループとそれに関連するすべての人物を取得したい場合は、GroupPersonに電話する必要がありますか? – Rox

答えて

1

あなたのWebサービスメソッドの返品は何ですか?それはListでなければなりません、あなたが持っているものです。

+0

ああ、もちろん!最初のGroupPersonインスタンスだけを返すわけではありませんでしたが、今は2時間ほどこの問題で忙しかったです!私を目覚めさせてくれてありがとう! :-) – Rox

関連する問題