gpt4 book ai didi

mysql - 使用 hibernate 空间标准查找圆内的点 - distanceWithin

转载 作者:行者123 更新时间:2023-11-29 06:48:51 30 4
gpt4 key购买 nike

我有一个域对象 car 。汽车属性之一是 location作为空间类型存储在 MySQL 中 Point ( columnDefinition 不能是 Geometry ,抛出异常)。

@Type(type="org.hibernate.spatial.GeometryType")
@Column(name = "location", columnDefinition="Point")
private Point location;

使用 hibernate 空间标准我想得到那些在一定半径内的标准。在 native sql 中我可以使用 ST_Distance_Sphere ,但我想改用标准。问题是,这给了我一个错误 org.hibernate.HibernateException: dwithin function not supported by this dialect :

final Point circleCenterPoint = 
new GeometryFactory().createPoint(new Coordinate(latitude,longitude));

(...).add(SpatialRestrictions.distanceWithin(Car.LOCATION, circleCenterPoint, radiusInKm * 0.009));

我正在使用:jts-1.13 , hibernate-core-4.3.4 , hibernate-spatial-4.3 (根据 that ,它们应该匹配)以及 org.hibernate.spatial.dialect.mysql.MySQLSpatial56Dialect

最佳答案

问题很简单,Hibernate Spatial 版本 4.x(或版本 5.x)不支持函数 ST_Distance_Sphere。

我创建了一个票证 ( https://hibernate.atlassian.net/browse/HHH-12229 ) 来更新 MySQL Spatial 方言并添加对这些新功能的支持。但是,这些更改不会向后移植到版本 4.x。

关于mysql - 使用 hibernate 空间标准查找圆内的点 - distanceWithin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48343371/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com