Hibernate Spatial: «Нет отображения диалектов для типа JDBC: 3000»
Я пытаюсь интегрировать Spring Roo с базой данных PostgreSQL с поддержкой PostGIS через Hibernate, следуя инструкциямHibernate Пространственный учебник, Все компоненты, не относящиеся к ГИС, работают нормально, и я создал БД из шаблона PostGIS.
Проблема в том, что как только я добавляю свойство Geometry к одному из моих объектов:
@Type(type="org.hibernate.spatial.GeometryType")
private Point centerPoint;
... он строит нормально, но пытается запустить на сервере (и фактически взаимодействовать с БД) вызывает ошибку ниже:
Caused by: org.hibernate.MappingException: No Dialect mapping for JDBC type: 3000
at org.hibernate.dialect.TypeNames.get(TypeNames.java:77)
at org.hibernate.dialect.TypeNames.get(TypeNames.java:100)
at org.hibernate.dialect.Dialect.getTypeName(Dialect.java:298)
at org.hibernate.mapping.Column.getSqlType(Column.java:208)
at org.hibernate.mapping.Table.sqlCreateString(Table.java:418)
at org.hibernate.cfg.Configuration.generateSchemaCreationScript(Configuration.java:1099)
at org.hibernate.tool.hbm2ddl.SchemaExport.<init>(SchemaExport.java:106)
at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:372)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1872)
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:906)
... 41 more
Зависимости Hibernate Spatial похоже, что postgis-jdbc 1.5.3 требуется, но 1.5.3 не присутствует ни в одном репозитории Maven, и я не могу заставить его скомпилировать из исходного кода. Я пробовал 1.5.2 и 1.3.3, и оба приводят к одной и той же ошибке 3000. HS говорит, что 1.5.3 должен быть "предоставлен", но с установкой зависимости на 1.5.3 и<scope>provided</scope>
тоже не помогает.
Это просто случай, когда нужна точная версия JDBC, или что-то еще не так?
Соответствующая выдержка из моего POM выглядит следующим образом:
<dependency>
<groupId>com.vividsolutions</groupId>
<artifactId>jts</artifactId>
<version>1.12</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-spatial</artifactId>
<version>4.0-M1</version>
</dependency>
<dependency>
<groupId>org.postgis</groupId>
<artifactId>postgis-jdbc</artifactId>
<version>1.5.2</version>
</dependency>
И изpersistence.xml
:
<property name="hibernate.dialect" value="org.hibernate.spatial.dialect.postgis.PostgisDialect"/>