我正在尝试使用Hibernate(4.3.6)条件进行“不在”查询,但是我不想使用// get session, create criteria, etc....Restrictions.not(Restrictions.in( ... ))...
我的实体状况如下:
报告及其ID和AcceptedReport列表
具有Report.id参考和idModerator的AcceptedReport
我的查询(自然语言)应为:“指定主持人尚未接受的所有报告”
如何仅使用联接执行此查询?
最佳答案
您可以尝试一下,它应该可以在您的实际情况下工作:
return (List<Report>) sessionFactory.getCurrentSession()
.createCriteria(Report.class, "AllReport")
.createAlias("AllReport.acceptedReports", "AcceptedReport",
//This is waht you were probably missing
JoinType.LEFT_OUTER_JOIN,
Restrictions.eq("AcceptedReport.idmoderator", idModerator)
)
.add(Restrictions.isNull("AcceptedReport.idModerator"))
.list();
关于java - 等同于“不参与”连接的 hibernate 条件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25609273/