当前位置: 首页 > 知识库问答 >
问题:

从Hibernate Spatial 5.4.3升级到5.6.9后列类型错误

董同
2023-03-14

我们正在尝试将Hibernate和Hibernate Spatial从5.4版升级到5.6版(我们使用的是MySQL 5.6),但在启动Spring Boot应用程序(运行Spring Boot 2.7.0)时,我们遇到以下异常:

Caused by: org.hibernate.tool.schema.spi.SchemaManagementException: Schema-validation: wrong column type encountered in column [my_polygon] in table [my_table]; found [geometry (Types#BINARY)], but expecting [polygon (Types#ARRAY)]
  at org.hibernate.tool.schema.internal.AbstractSchemaValidator.validateColumnType(AbstractSchemaValidator.java:167)
  at org.hibernate.tool.schema.internal.AbstractSchemaValidator.validateTable(AbstractSchemaValidator.java:151)
  at org.hibernate.tool.schema.internal.GroupedSchemaValidatorImpl.validateTables(GroupedSchemaValidatorImpl.java:42)
  at org.hibernate.tool.schema.internal.AbstractSchemaValidator.performValidation(AbstractSchemaValidator.java:97)
  at org.hibernate.tool.schema.internal.AbstractSchemaValidator.doValidation(AbstractSchemaValidator.java:76)
  at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:204)
  at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:85)
  at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:335)
  at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:471)
  at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1498)
  at org.hibernate.jpa.HibernatePersistenceProvider.createContainerEntityManagerFactory(HibernatePersistenceProvider.java:141)
  at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:365)
  at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409)
  ... 195 common frames omitted

MyTable是这样定义的:

@Entity
public class MyTable {
  
    @Type(type = "jts_geometry")
    @Column(name = "my_polygon", columnDefinition = "polygon")
    public Polygon myPolygon;

    // Other properties
}

我已经尝试完全删除@Type注释,但我仍然得到相同的错误。如何使此工作?

共有1个答案

蒋华美
2023-03-14

实际上,我通过将列定义(columnDefinition)从多边形(polygon)更改为几何体(geometry)来实现它:

@Entity
public class MyTable {
  
    @Type(type = "jts_geometry")
    @Column(name = "my_polygon", columnDefinition = "geometry")
    public Polygon myPolygon;

    // Other properties
}
 类似资料:
  • 失败:构建失败,但有例外。 > 其中:脚本C:\flatter\packages\flatter\u tools\gradle\flatter。格雷德尔线:1070 错误:任务:app:compileFlutterBuildDebug的执行失败。 处理“命令”C:\flatter\bin\flatter。bat“”以非零退出值1结束 > 获取更多帮助https://help.gradle.org

  • 当我将我的keycloak版本从3.2.1升级到4.5时,我遇到了以下异常。如果我从3.2.1转到keycloak 4.2.1我就不明白了。看起来像是keycloak 4.5特有的东西。

  • 我相信我已经为4.1准备好了所有的依赖项,但是当我使用作曲家更新时,我会出现以下错误: 生成自动加载文件 脚本php artisan clear已编译,处理返回的更新后cmd事件时出错: 脚本php artisan optimize处理返回的更新后cmd事件时出错: 我的composer文件如下所示: { }

  • 为了帮助大伙儿升级,我们为现在的Apache用户提供了一份重要信息的文档说明。这些只是一些简要说明,你可以从新特性文档或src/CHANGES文件中得到更多信息。 这篇文档仅仅描述了从版本 2.0 到 2.2 的变化,如果你是从1.3版进行升级的,请查考从1.3升级到2.0文档。 编译时配置的改变 编译过程与2.0版本非常相似,你曾经使用过的configure命令行(在安装目录下的build/co

  • 为了帮助大伙儿升级,我们为现在的Apache用户提供了一份重要信息的文档说明。这些只是一些简要说明,你可以从新特性文档或src/CHANGES文件中得到更多信息。 编译时配置的改变 Apache现在使用autoconf和libtool系统来进行安装进程的配置。这个系统用起来很像Apache1.3的APACI系统,但并不相同。 在普通的选择编译模块的基础上,Apache2.0把请求进程的主要部分移到

  • WARNING 本升级指南仅适用于 2.2 版本升级至 2.3 版本,如果你并非 2.2 版本,请查看其他升级指南,Plus 程序不允许跨版本升级! 更新代码 预计耗时: 2 小时 这是你自我操作的步骤,确认将你的 2.2 版本代码升级到 2.3 版本,如果你做过一些自定义修改可能会出现代码冲突,你需要解决。 升级依赖 预计耗时: 3 分钟 进入 Plus 程序目录,执行: composer up