今天遇到一个比较莫名其妙的问题,我们先看一下事发原因:
select td.id_, cbbaa.id_, from cmcs3_bank_trade_detail td, cb_ba_bank_account cbbaa where td.id_ = cbbaa.id_
这样两张表,联合查询,并且其中有相同的字段 id_ 这样的语句看似没问题,但是如果调用方法查询的时候就会有问题了:
Query q = this.getSession().createSQLQuery(sb.toString()); List<Object[]> data = q.list();
结果:
{1234, 1234}
但相同的语句在PL/SQL里查询的时候结果是:
{1234, 562646265}
很明显第二个返回的数据不应该是 1234,但是它取了第一个字段 td.id_ 的值,这中情况是因为Hibernate解析的问题
具体原因不太清楚,我使用的Hibernate版本是 3.7.2.ga
有相同版本使用者请注意啦!
以后可能会遇到其他的莫名其妙的问题所以题目暂定为 莫名其妙的问题(1)