我有下面的查询,得到了一个数据类型为double的列表。在这个查询中,我把一个特定位置的经度和纬度以及距离作为参数。使用“距离”参数,我可以选择不同位置之间的距离。
我现在的问题是,我想得到一个完整的“城市”-在我的结果列表中的对象,而不仅仅是来自不同距离的列表(双精度)。我应该如何修改我从我的实体“城市”得到的列表,而不仅仅是浮动?
public List<Double> findCityAroundSelectedCity(double longitude, double latitude, float distance) {
String queryString = "SELECT (6371 * acos (cos(radians(" + latitude
+ ")) * cos(radians(latitude)) * cos(radians(longitude) - radians(" + longitude + ")) + sin(radians("
+ latitude + ")) * sin(radians(latitude)))) AS distance FROM City c HAVING distance < " + distance
+ " ORDER BY distance";
Query query = entityManager.createNativeQuery(queryString);
List<Double> list = null;
list = query.getResultList();
return list;
}
非常感谢你的帮助
1条答案
按热度按时间zfycwa2u1#
添加
SELECT *
并将实体指定为方法的第二个参数createNativeQuery()
...试试看
SQL
查询,类似于:以及
Java
零件:顺便说一句,这将返回源城市以及,如果它是在表中。。。