我想找到没有文档的应用程序,我想用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"));
}
基本上我设置标准的方式,我正在创建内连接,因此限制条件不起作用。
答案 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"));
}