我的智慧到此为止。我有一个现有的MySQL数据库,该数据库的表中的列具有“点”数据类型。我做的第一件事是通过以下方式将空间依赖性添加到我们的gradle构建文件中:
implementation 'org.hibernate:hibernate-spatial:5.4.2.Final'
我正在努力弄清楚如何正确修改映射文件(基于XML,不使用注释)以及相应的模型以支持加载。
<property name="pickupLocation" type="???">
<column name="pickup_location" sql-type="???"/>
</property>
从我在网上可以找到的一小部分示例中收集到的信息来看,我需要它最终成为模型中的com.vividsolutions.jts.geom.Point
数据类型。实际上,这就是我在模型端所拥有的全部。我会假设sql-type应该只是“ point”,但是认识到这可能是一个不准确的假设。无论我尝试使用哪种类型/ sql-types的组合,通常都会在模糊的堆栈跟踪中遇到反序列化错误,但这并不是特别有用。
如果相关,我可以通过SET pickup_location=POINT(18 -63)
将数据植入表中。
答案 0 :(得分:2)
只要pickupLocation
的类型为JTS Point,则映射文件中就不需要type
或sql-type
。
您可能要检查您的应用程序实际上是否在使用空间方言(有关可用的方言,请参见manual)。这是此类问题的最常见来源。
在任何情况下,值point
对于sql-type
是正确的,对于type
,它应该是jts_geometry
。