在我目前的项目中,我遇到了使用hibernate条件查询获取实体的问题.我有以下实体:
>教授,其中包含学生名单
>学生,其中包含作业列表.
>分配,包含分配给它的学生的ID.
现在,我希望获得与教授相关的所有作业,即教授分配给他的学生的所有作业.
select * from Assigment p,Student a,Professor c where p.studentid = a.id and a.proffid = c.id and c.id = 2411;
如何使用hibernate criteria API实现此查询?
最佳答案
假设你的表是这样的:
@Entity
public class Professor{
K id;
List
使用别名的简单示例:
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();