duanlujiaji10335 2013-11-18 02:07
浏览 164
已采纳

使用ResultSetMapping获取别名

I have a query that using latitude and longitude, gets me the records that are close to other latitude and longitude. In the query I get the distance but I don't know how to return it. This is my code:

public function findNearUsers($lon, $lat, $dist = 25){

        $rsm = new ResultSetMapping;


        $rsm->addEntityResult('Entities\Users', 'l');
        $rsm->addFieldResult('l', 'id', 'id');
        $rsm->addFieldResult('l', 'name', 'name');
        $rsm->addFieldResult('l', 'birthDay', 'birthDay');
        $rsm->addFieldResult('l', 'gender', 'gender');

        $query = $this->_em->createNativeQuery(
                "SELECT l.id, l.name, l.birthDay, l.gender, SQRT(
    POW(69.1 * (latitude - (?)), 2) +
    POW(69.1 * ((?) - longitude) * COS(latitude / 57.3), 2)) AS distance
    FROM users l
            HAVING distance < (?)
            ORDER BY distance", $rsm
        );

        $query->setParameter(1, $lat);
        $query->setParameter(2, $lon);
        $query->setParameter(3, $dist);

        return $query->getResult();
    }

As you can see I calculate the distance and have in the query as as distance . How can I return distance? Thanks!

  • 写回答

1条回答 默认 最新

  • dongri1989 2013-11-18 21:25
    关注

    For anybody that has the same problem, I don't know if it was a workaround, but adding the variable to my entity worked.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?