Hibernate SQLQuery忽略了别名

时间:2014-06-04 06:32:26

标签: java mysql hibernate

当我尝试在mysql中执行以下查询时,它完美地运行。但是当我们通过Hibernate(3.2)尝试它时,hibernate没有区分m.NAMEo.NAME。它为m.NAME返回相同的结果。

SELECT m.NAME, m.SCREENNAME, rm.ADDRESS, o.NAME FROM remoteunit rm LEFT JOIN mo m ON rm.MOID = m.ID JOIN overallcustomfields ocf ON m.ID = ocf.MOID LEFT JOIN organization o ON ocf.ORGID = o.ID WHERE m.DOMAINID = 2

我使用以下代码

Transaction transaction = session.beginTransaction();
SQLQuery query = session.createSQLQuery(queryString);
query.setLong("customId", customId);
remoteUnitList = (ArrayList<Object[]>)query.list();
transaction.commit();

注意:强制在SQLQuery中使用Hibernate,因为列是动态填充的,还有更多约束。

1 个答案:

答案 0 :(得分:2)

您是否尝试过SELECT m.NAME as m_name, o.NAME as o_name...。我遇到了同样的问题,并伴随着这种变化。