グループに所属するすべての人物を検索したい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サービスから複数の人が返されることがないことです。
Netbeansが生成したエンティティ(少なくともクラス宣言とインスタンス変数)を投稿する必要があります(getters/setters/constructorsを必要としません)。このような簡単な設定のためには、実際には2つのエンティティ( 'Person'と' Group')のみが必要です。アソシエーションテーブルのエンティティは過剰です。 – Perception
選択したグループとそれに関連するすべての人物を取得したい場合は、GroupPersonに電話する必要がありますか? – Rox