チームには人のリストがあります。したがって、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));`