HQL:两个位置之间的距离计算?

时间:2015-08-04 09:40:32

标签: java mysql spring hibernate rest

我有一个表Restaurants,用于存储餐馆的详细信息,包括LatitudeLongitude。现在,我必须从DB中的20 Kilo Meter范围内对这些记录进行整理。给定Lat/Lon个输入值。

我正在使用带有hibernate的RESTful web服务。

实体类

@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之间的差异。或者我使用Criteria?任何人请给我一个答案。?

1 个答案:

答案 0 :(得分:0)

也许您选择使用Hibernate Spatial?

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

所有数据库都不支持Hibernate Spatial。您可以在此处查看数据库支持:http://www.hibernatespatial.org/documentation/03-dialects/01-overview/

同样可以更改SQLDialect