/**
* Selection of arbitrary sharing stations at specific location via lat/lon coordinates
*
* @param lon Longitude of the target location
* @param lat Latitude of the target location
* @return A descendant of SharingStation class if exists at target location
* @throws DatabaseException if no station could be retrieved
*/
@Override
public SharingStation findByCoordinate(Double lon, Double lat, Class<? extends SharingStation> clazz) throws DatabaseException {
String sql = "SELECT * FROM bikestation WHERE " +
"ST_PointFromText('POINT(' || ? || ' ' || ? || ')', 4326) = geopos " +
"UNION " +
"SELECT * FROM carstation " +
"WHERE ST_PointFromText('POINT(' || ? || ' ' || ? || ')', 4326) = geopos;";
Query q = entityManager.createNativeQuery(sql, clazz);
q.setParameter(1, lon);
q.setParameter(2, lat);
q.setParameter(3, lon);
q.setParameter(4, lat);
try {
return (SharingStation) q.getSingleResult();
} catch (PersistenceException e) {
throw new DatabaseException("Unable to find Sharing Station in Database");
}
}
StationRepositoryImpl.java 文件源码
java
阅读 31
收藏 0
点赞 0
评论 0
项目:xsharing-services-router
作者:
评论列表
文章目录