我正在尝试使用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/

10-11 00:08