java Spring 6 PostGIS集成

2lpgd968  于 2023-02-20  发布在  Java
关注(0)|答案(1)|浏览(161)

这个问题是地理信息系统堆栈交换的migrated,因为它可以在14天前的堆栈溢出.Migrated上回答。
我一直在尝试将一个使用PostGIS的现有应用程序从Spring 5移植到Spring 6。我收到一个错误消息,说org. hib. spatial. dialect. postgis. PostgisDialect不再可用:
任务:packages:discover-app-back-api:引导运行失败原因:org.hibernate.service.spi.ServiceException:无法创建请求的服务组织。hibernate.engine.jdbc.env.spi.JdbcEnvironment]原因是:发生异常:无法将名称[org. hib. spatial. dialect. postgis. PostgisDialect]解析为策略[org. hib. dialect. Dialect],原因是:org.hibernate.boot.registry.classloading.spi.ClassLoadingException:无法加载类[org. hib. spatial. dialect. postgis. postgisDialect],原因是:java.lang.ClassNotFoundException:无法加载请求的类:org.hibernate.spatial.dialect.postgis.PostgisDialect

  • Spring Boot3.0.2
  • spring security 6.0.1
  • 休眠6.1.6

实际上,这个类在6.X版本中不再可用。我应该使用什么配置?

xn1cxnb4

xn1cxnb41#

您不再需要指定方言:
PostgisDialect类最初被PostgisPG 9 xDialect/PostgisPG 10 Dialect类取代,但现在这些类也被弃用(“不再需要SpatialDialect”)。
所以正确的方言是默认的(org.hibernate.dialect. PostgreSQL方言)。
但是由于它是默认的,所以没有必要在Spring-Boot应用程序中指定它,默认驱动程序和方言都可以从spring.datasource.url中指定的内容派生出来

相关问题