【发布时间】:2013-01-03 04:52:09
【问题描述】:
这是我的 SQL 语句。
SELECT USER_PROFILE.FIRST_NAME, USER_PROFILE.LAST_NAME, USER_PROFILE.USER_TYPE
FROM USER_PROFILE
INNER JOIN USER_LOGIN_STATUS
ON USER_PROFILE.USER_ID=USER_LOGIN_STATUS.USER_ID
ORDER BY USER_PROFILE.FIRST_NAME
我正在尝试执行下面的代码,我认为它等同于休眠 DetachedCriteria 并期望只有两个数据作为结果。
DetachedCriteria dc = getDetachedCriteria();
DetachedCriteria userLoginCriteria = DetachedCriteria.forClass(UserLoginStatus.class);
userLoginCriteria.setProjection(Projections.distinct(Projections.property("userId")));
dc.add(Subqueries.propertyIn(UserField.id.name(), userLoginCriteria));
DetachedCriteria profileCriteria = dc.createCriteria("profile");
profileCriteria.addOrder(Order.asc("firstName"));
return getAll(dc, pageSetting);
但不幸的是,这是出乎意料的结果:我有多个数据结果。
名称 |输入 |
- 本·琼斯 |用户 |
- 本·琼斯 |用户 |
- 汤姆·荷马 |嘉宾 |
- 汤姆·荷马 |嘉宾 |
有没有人知道确切等效的 DetachedCriteria 或解决方案?
【问题讨论】:
-
为什么在你提供的 SQL 中没有在分离条件中执行子查询?
-
哦,我很抱歉。我是这项技术的新手。我真的不知道如何让它以独立的标准工作。你能帮我弄清楚如何使用我提供的 sql 在独立的条件下完成它。非常感谢。
标签: java hibernate detachedcriteria