Hibernate条件查询多个条件
在我目前的项目中,我遇到了使用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 students; } @Entity public class Student{ K profid; List 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();
- 如何在JSF + Spring + Hibernate中使用DTO
- @Basic(fetch = FetchType.LAZY)不起作用?
- 使用@Transactional时,EntityManager.persist()不会插入数据
- 事务暂停如何在Spring中运行?
- hibernate删除错误:批量更新返回意外行计数
- 如何根据给定的模式重新排列列表中的项目?
- Spring + Hibernate + DB2 + JTA + XA应用程序中的死锁
- 为什么hibernate给出了ConstraintException,就好像在已经存在的情况下尝试创建对象一样
- 非托管线程Spring Quartz Websphere Hibernate