hibernate 混合了vividsolutions.jts Geometry 和locationtech.jts.Geometry
Posted
技术标签:
【中文标题】hibernate 混合了vividsolutions.jts Geometry 和locationtech.jts.Geometry【英文标题】:hibernate mixes vividsolutions.jts Geometry with locationtech.jts.Geometry 【发布时间】:2020-06-11 11:54:50 【问题描述】:在我的 JPA 实体中,我有以下内容:
import org.locationtech.jts.geom.Geometry;
....
....
@Column(name = "geometry")
private Geometry geometry;
我正在使用 h2 gis 进行单元测试。当测试执行时,它会给出错误:
Caused by: org.h2.jdbc.JdbcSQLException: Feature not supported: "converting to class com.vividsolutions.jts.geom.Geometry"
为什么它试图映射到不同的类。
我的部门是:
<dependency>
<groupId>org.locationtech.jts</groupId>
<artifactId>jts</artifactId>
<version>1.15.0</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.197</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.orbisgis</groupId>
<artifactId>h2gis</artifactId>
<version>1.4.0</version>
<scope>test</scope>
</dependency>
【问题讨论】:
【参考方案1】:您不能使用不兼容的 H2、H2GIS 和 JTS 版本。
H2GIS 1.4.0 需要来自 Vivid Solutions 的 H2 1.4.196 和 JTS 1.14。
H2GIS 1.5.0 需要 LocationTech 的 H2 1.4.197 和 JTS 1.15。
如果你想使用更新版本的 H2,你需要使用一些快照版本的 H2GIS。
http://www.h2gis.org/news/releases/
【讨论】:
我尝试了第二种组合。它给了我错误:java.lang.NoClassDefFoundError: org/locationtech/jts/geom/CoordinateXYZM 这意味着你的类路径中的某些东西需要 JTS 1.16。以上是关于hibernate 混合了vividsolutions.jts Geometry 和locationtech.jts.Geometry的主要内容,如果未能解决你的问题,请参考以下文章
Hibernate:“实体中的重复列映射”与“不允许在属性中混合可更新和不可更新的列”
求助,Windows 2008如何配置睡眠(Sleep)、休眠(hibernate)、混合休眠(Hybird Sleep)、标准睡眠(Standby)
使用SpringDataJpa和Hibernate / eclipselink时entityManager的行为