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