首页 > 解决方案 > 如何使用标准进行简单的左连接?

问题描述

我有一个用户表,带有 user_id。

我正在获取这样的用户:

    Criteria c = session.createCriteria(User.class);

现在我有一张表门票,其中包含用户表的外键。有一列 user_id

我希望在我的标准中获得票证类型为 X 的所有用户。

我试过这样的事情:

c.createAlias("ticket", "ticket");
c.add(Restrictions.ne("ticket.type", "X"));

标签: javahibernate

解决方案


在 createAlias 方法中,您可以指定您需要的连接。

Criteria c = session.createCriteria(User.class)
                .createAlias("ticket", JoinType.LEFT_OUTER_JOIN);

或者

Criteria c = session.createCriteria(User.class, "user")
                .createAlias("user.ticket", "ticket", JoinType.LEFT_OUTER_JOIN);

推荐阅读