使用休眠标准找到数据库表之间没有关联的结果

时间:2017-07-05 13:56:20

标签: java hibernate

我想找到没有文档的应用程序,我想用hibernate标准来做。一旦我在标准中使用createAlias,我只找到具有关联的表。有没有人知道我该怎么做或甚至可能?

Application.java

private int appId;

private String lname;

private String fname;

//getters setter generated

Document.java

private int appId;

private int docId;
//getters setters generated

以下是我的标准

Criteria criteria = session.createCriteria(Application.class, "application");
 criteria.createAlias("application.appId","document");

 if (looking for no association)
 {
 criteria.add(Restrictions.isNull("document.appId"));
 }

基本上我设置标准的方式,我正在创建内连接,因此限制条件不起作用。

2 个答案:

答案 0 :(得分:0)

试试这个:

Criteria criteria = session.createCriteria(Application.class);
criteria.createAlias("document");
if (looking for no association) {
    criteria.add(Restrictions.isNull("document.appId"));
}

首先,您可以基于Application类创建条件。其次,您可以指定所需的别名,最后应用所需的限制。

答案 1 :(得分:-1)

指定联接类型帮助我解决了问题

Criteria criteria = session.createCriteria(Application.class);
    criteria.createAlias("document",Criteria.LEFT_JOIN);
    if (looking for no association) {
        criteria.add(Restrictions.isNull("document.appId"));
    }