Я пытаюсь добавить точку в объект домена в Grails 3.3.8 (текущий последний выпуск). Grails 3.3.8 использует Hibernate 5.1.5, в котором есть поддержка hibernate-spatial.
В build.gradle:
compile group: 'org.hibernate', name: 'hibernate-spatial', version: '5.1.5.Final'
compile group: 'com.vividsolutions', name: 'jts', version: '1.13'
В конфигурации:
driverClassName = 'com.microsoft.sqlserver.jdbc.SQLServerDriver'
dialect = 'org.hibernate.dialect.SqlServer2008SpatialDialect'
В домене PointTest.groovy:
package com.test
import com.vividsolutions.jts.geom.Point
class PointTest {
Point coords
static constraints = {
}
static mapping = {
coords sqlType: 'geometry(Point,4326)'
}
}
Из того, что я могу сказать из этого сообщения о переполнении стека, приведенное выше должно работать. Но когда я запускаю проект Grails, таблица не создается. Если я удалю строку из mapping
, таблица создастся, но coords
будет не того типа, varbinary(255)
.
Java-версия: 8
Версия Grails: 3.3.8
Версия базы данных: SQL Server 2017.
create table point_test (id bigint generated by default as identity, version bigint not null, coords geometry(Point,4326) not null, primary key (id))
. Вы видите то же самое, если используете H2? - person Jeff Scott Brown   schedule 05.11.2018geometry(Point,4326)
не будет распознан БД. - person Jeff Scott Brown   schedule 05.11.2018