我在使用H2和GeoDB(内存中,junit)时遇到问题。hibernate-spatial:找不到函数
此外,使用Hibernate 5(最新版本每个软件包,包括Hibernate空间)和Spring 4
持久存储和查询通过ID实体工作得很好。几何类型被认可没有问题。出现
问题,当我试图查询数据库与地理空间功能,和Hibernate失败说,他无法找到函数:
[ERROR] 2015-12-16 11:16:15,000: org.hibernate.engine.jdbc.spi.SqlExceptionHelper.logExceptions:129: Function "ST_CONTAINS" not found; SQL statement:
select geoentity0_.id as id1_0_, geoentity0_.location as location2_0_, geoentity0_.name as name3_0_ from GEO_ENTITY geoentity0_ where ST_Contains(geoentity0_.location, ?)=1 [90022-190]
貌似dialect.Here的probem是什么我使用(在persistence.xml中):
<property name="hibernate.dialect" value="org.hibernate.spatial.dialect.h2geodb.GeoDBDialect" />
这些都是我用DEPS:
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.190</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.opengeo</groupId>
<artifactId>geodb</artifactId>
<version>0.7</version>
<scope>test</scope>
</dependency>
我做错了什么,我该如何解决?
编辑:添加h2gis
我试着加入h2gis
我DEPS,但并没有改变错误。我也尝试用h2gis
替代geodb
,结果相同。
<dependency>
<groupId>org.orbisgis</groupId>
<artifactId>h2spatial-ext</artifactId>
<version>1.2.3</version>
</dependency>
也许你还需要[H2GIS]( http://www.h2gis.org/)? –
@ThomasMueller我按照您的建议尝试过并更新了结果。 –