1

我有两个班:AB这样。

public Class A {
    public B b;
    // Setter and Getter
}


public Class B {
    String code;
    // Setter and Getter
}

我想要一个A从数据库加载的列表,按B.code. 但问题是,当 的实例的A具有空值时b,它会被忽略,并且不会被加载。

这里应该做什么?一个简短的提示就足够了。

更新

这是我的代码:

DetachedCriteria cr = DetachedCriteria.forClass(A.class, "a");
cr.createAlias("a.b", "b");
cr.addOrder(Order.asc("b.code"));
// something like cr.list();
4

1 回答 1

1

默认情况下createAlias(String associationPath, String alias)会生成一个内部连接,但在这里您需要一个 LEFT_OUTER 连接,因此请改用以下内容:

cr.createAlias("a.b", "b", CriteriaSpecification.LEFT_JOIN);
于 2013-02-18T13:49:25.643 回答