java - HQL : Distance calculation between two locations?

标签 java mysql spring hibernate rest

我有一张表 Restaurants ,它存储了餐厅的详细信息,包括 LatitudeLongitude 。现在我必须从 DB 中整理记录在给定 Lat/Lon 输入值的 20 Kilo Meter 范围内的那些。

我正在使用带 hibernate 功能的 RESTful 网络服务。

实体类

@Entity
@Table(name = "restaurants")
public class Restaurants implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "restaurant_id")
    private int restaurantId;

    @Column(name = "restaurant_name")
    private String restaurantName;

    @Column(name = "category_id")
    private Integer categoryId;

    @Column(name = "image_url")
    private String imageUrl;

    private Float longitude;

    private Float latitude;

    @Column(name = "contact_name")
    private String contactName;

    @Column(name = "primary_phone")
    private String primaryPhone;

    @Column(name = "secondary_phone")
    private String secondaryPhone;

    private String fax;

    private String address1;

    private String address2;

    //Getters and Setters

} 

我已经上网,但找不到任何令人满意的答案。between 操作是否更可取以找出 Lat/Long 之间的差异。还是我使用 标准 ?任何人请给我一个答案。?

最佳答案

也许您选择使用 Hibernate Spatial?

您可以在此处找到教程:http://www.hibernatespatial.org/documentation/02-Tutorial/01-tutorial4/

请注意,并非所有数据库都支持 Hibernate Spatial。您可以在此处检查您的数据库支持:http://www.hibernatespatial.org/documentation/03-dialects/01-overview/

还请注意更改您的 SQLDialect

关于java - HQL : Distance calculation between two locations?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31805790/

相关文章:

java - Netty 中的 ByteBuffers 导致内存泄漏

java - 如何将 pl/sql 的输出关联数组传递给 java?

java - 如何使用 for 循环生成简单地形 [voxel]

php - 检查 MySQL 数据库并添加代码 PHP

mysql - 在 select 中使用存储过程

java - netbeans平台制作​​的My App如何设置全屏模式?

java - Spring @ConditionalOnProperty havingValue = "value1"或 "value2"

java - 为什么 @JavaConfig 在 Spring MVC 中不起作用?

java - 将 Ajax 与 Spring Portlet 结合使用

java - 如何从 hibernate 中的日期类型列中读取空值