hibernate SQL query左连接的问题:结果跟查询分析器得出的不一样
custjcy
2013-12-19
SQL语句如下:
select msg.messageId, msg.folderId, cmsg.messageId from message msg left join compose_message cmsg on cmsg.messageId=msg.messageId 在HeidiSQL中执行结果如下: messageId folderId messageId 153 -3 NULL 164 -1 NULL 使用this.getSessionFactory().getCurrentSession().createSQLQuery(sql)创建SQL 查询,详细代码如下: List result = this.getSessionFactory().getCurrentSession().createSQLQuery(sql).list(); if (result != null && result.size() > 0){ for(Object item : result){ Object[] row = (Object[])item; Long msgId = ((BigInteger)row[0]).longValue(); Long msgFolderId = ((BigInteger)row[1]).longValue(); boolean isComposeMessage = row[2] != null ? true : false; } } 奇怪的是row[2]不为null,而是跟row[0]一样,分别为:153, 164。 有谁遇到过这样的问题?如何解决? |
|
everydayuio
2013-12-19
第一列和第三列的列名都是messageId,这样就有问题了,看过hibernate代码,用的是列名取值。必须另取别名才行。
|
|
custjcy
2013-12-20
everydayuio 写道 第一列和第三列的列名都是messageId,这样就有问题了,看过hibernate代码,用的是列名取值。必须另取别名才行。
谢谢!正是这个问题,给最后一个列加上别名就好了。 |
相关讨论
相关资源推荐
- Windows操作系统,启动Tomcat之后DOS窗口乱码处理
- windows下多个tomcat服务的安装,并加入到windows服务随机启动
- Windows下设置tomcat 开机自动启动
- Tomcat 服务:解决 Apache Tomcat 更新后 Tomcat9w.exe 无法启动 Tomcat 服务的问题
- 本地计算机上的apache tomcat 服务启动后又停止,windows不能在本地启动Apache tomcat。有关.....错误代码 0 如何解决??...
- windows server部署tomcat服务自动启动
- Windows10设置Tomcat开机启动
- tomcat开机自启动 java的jar包、redis、nginx服务实现开机启动
- tomcat配置成Windows服务
- windows下启动tomcat时,后台隐藏tomcat启动黑窗 & 解决端口占用