2017-03-29 7 views
1

Iました3表: PERSON:ID、NAME、SURNAME TEAM:ID、NAME、PERSON、ROLE ROLE:ID、チームはPERSONのリストを持っている可能性がありPOSITION Hibernateの基準は、2つのテーブルを結合する

私はこのように、Hibernateの基準で、クエリを作成する必要があります。 選択* t.ROLEは=「myRoleの」とt.PERSON = p.id

は私が取得したい人物P、TEAM tの からROLEを持つTEAMのPERSONのリスト 私を助けることができますか?ありがとう

答えて

1

チームには人のリストがあります。したがって、TeamテーブルのPersonカラムを使用する代わりに、Personテーブルにteam_idカラムを設定する必要があります。

人:ID、NAME、SURNAME、TEAM_ID、ROLE_ID チーム:ID、NAME 役割:ID、POSITION

その後、私はあなたのテーブルは次のようにあるべき役割がPerson.Thusに関連していると仮定します与えられた役割を与えられたチームに人のリストを取得するためのクエリは、次のとおりです。条件に

Select * from Person p, Team t, Role r where p.team_id=t.id and p.role_id=r.id and r.position = givenPosition and t.name=givenTeam

`Criteria c = session.createCriteria(Person.class, "p"); 
c.createAlias("p.team", "t"); 
c.createAlias("p.role", "r"); 
c.add(Restrictions.eq("t.name", givenTeam)); 
c.add(Restrictions.eq("r.position", givenPosition));` 
関連する問題