6

私の現在のプロジェクトでは、休止状態の基準クエリでエンティティを取得するという問題に直面しました。次のエンティティがあります。

  • 学生のリストを含む教授
  • 課題のリストを含む Student。
  • 割り当て先の学生の ID を含む割り当て。

ここで、教授に関連するすべての課題、つまり、教授が学生に割り当てたすべての課題を取得したいと考えています。

このクエリは、条件クエリで実装したいものを示しています。

select * from Assigment p, Student a, Professor c where p.studentid = a.id and a.proffid = c.id and c.id = 2411;

休止状態の基準 API を使用してこのクエリを実装するにはどうすればよいですか?

4

1 に答える 1

13

テーブルが次のようになっているとします。

@Entity
public class Professor{
    K id;
    List<Student> students;
}

@Entity
public class Student{
    K profid;
    List<Assignments> assignments;
}

@Entity
public class Assignments{
    K studentid;
}

エイリアスを使用した簡単なサンプル:

Criteria criteria = currentSession.createCriteria(Professor.class, "professor");
    criteria.createAlias("professor.students", "student");
    criteria.createAlias("student.assigments", "assigment");
    criteria.add(Restrictions.eqProperty("professor.id", "student.profid"));
    criteria.add(Restrictions.eqProperty("assigment.studentid", "student.profid"));
    criteria.add(Restrictions.eq("id", 2411));
return criteria.list();
于 2012-12-17T06:36:17.497 に答える