【发布时间】:2017-03-16 10:25:15
【问题描述】:
用户
- 用户名
- 用户名
- 密码
- 状态
问题
- 问题编号
- 问题描述
- 状态
- 创建日期
问题分配
- 问题编号
- issueAssignedTo
- issueAssignedBy
- cmets
在我的 primefaces 数据表中,我使用以下查询获取这些值
SELECT I.issue_number, I.issue_describtion, U.first_name,US.first_name
FROM ISSUES I
LEFT JOIN ISSUE_ASSIGNED IA
ON I.issue_number = IA.Issue_number
LEFT JOIN USERS U
ON U.id = IA.assigned_to_user_id
LEFT JOIN USERS US
ON US.id = IA.assigned_by_user_id
同时也是用户的管理员将问题分配给另一个用户
在 MSSQL 中,上面的查询可以正常工作,因为它们是不同的用户,因此我可以正确记录 U.firstName 和 US.FirstName。
MSSQL 中的查询返回
PER-1675 Perform - Evaluation Form Export does not pull any data in Legacy Export Tool (Due 8/14) Ameh Sandip
PER-2048 Calculation of scores fails when the lower/upper bound value of a calculation text result is a Ameh Sandip
但在 Hibernate 中,对于相同的查询,firstName 和 US.firstName 给出相同的结果
代码
@Override
public List<Object> getIssueListForAssigingIssue (){
List<Object> allIssueList = getHibernateTemplate()
.getSessionFactory()
.getCurrentSession().createSQLQuery("SELECT I.issue_number, I.issue_describtion, IT.issue_type,U.first_name ,US.first_name "
+ "FROM ISSUES I "
+ "LEFT JOIN ISSUE_ASSIGNED IA "
+ "ON I.issue_number = IA.Issue_number "
+ "LEFT JOIN USERS U "
+ "ON U.id = IA.assigned_to_user_id "
+ "LEFT JOIN USERS US "
+ "ON US.id = IA.assigned_by_user_id ").list();
return allIssueList;
}
hibernate 中的查询返回
PER-1675 Perform - Evaluation Form Export does not pull any data in Legacy Export Tool (Due 8/14) Ameh Ameh
PER-2048 Calculation of scores fails when the lower/upper bound value of a calculation text result is a Ameh Ameh
【问题讨论】:
-
是返回的仅有的两行吗?结果集可能相同,但顺序不同。
-
这只是一个例子,实际上只有一个管理员分配问题。
-
Hibernate 查询使用 JOIN。直接 SQL 使用 LEFT JOIN。
-
@gbn 这两种方法我都试过了,都不行!!!
标签: java sql-server hibernate