From 04491e67754a9be07eb1b220d62e443bd01f0593 Mon Sep 17 00:00:00 2001 From: Karel Maesen Date: Mon, 19 Jul 2021 21:57:45 +0200 Subject: [PATCH] HHH-14800 Introduce SpatialTypeContributor See discussion #4111 --- hibernate-spatial/hibernate-spatial.gradle | 2 +- .../PostgreSQLDialectTypeContributor.java | 34 ++++ .../spatial/type/SpatialTypeContributor.java | 33 ++++ .../SpatialTypeContributorImplementor.java | 11 ++ .../spatial/type/TypeContributorResolver.java | 11 ++ .../org.hibernate.boot.model.TypeContributor | 0 .../AbstractTestStoreRetrieve.java | 171 ++++-------------- .../spatial/integration/DecodeUtil.java | 3 +- .../integration/SpatialTestDataProvider.java | 63 +++++++ .../TestGeolatteSpatialPredicates.java | 2 +- .../integration/TestJTSSpatialPredicates.java | 2 +- .../TestSpatialSchemaGeneration.java | 60 ++++++ .../TestStoreRetrieveUsingGeolatte.java | 3 +- .../jts/TestStoreRetrieveUsingJTS.java | 1 + .../testing/SpatialFunctionalTestCase.java | 12 +- .../spatial/testing/TestSupportFactories.java | 3 +- .../testing/datareader/TestSupport.java | 9 +- .../cockroachdb/CockroachDBTestSupport.java | 15 +- .../testing/dialects/db2/DB2TestSupport.java | 12 +- .../dialects/h2geodb/GeoDBTestSupport.java | 3 +- .../dialects/hana/HANATestSupport.java | 3 +- .../dialects/mariadb/MariaDBTestSupport.java | 6 +- .../dialects/mysql/MySQL8TestSupport.java | 3 +- .../dialects/mysql/MySQLTestSupport.java | 10 +- .../dialects/oracle/OracleSDOTestSupport.java | 2 +- .../dialects/postgis/PostgisTestSupport.java | 14 +- .../sqlserver/SQLServerTestSupport.java | 4 +- .../domain}/GeomEntity.java | 11 +- .../jts => testing/domain}/JtsGeomEntity.java | 9 +- .../testing/domain/SpatialDomainModel.java | 19 ++ .../src/test/resources/hibernate.properties | 9 +- 31 files changed, 356 insertions(+), 184 deletions(-) create mode 100644 hibernate-spatial/src/main/java/org/hibernate/spatial/type/PostgreSQLDialectTypeContributor.java create mode 100644 hibernate-spatial/src/main/java/org/hibernate/spatial/type/SpatialTypeContributor.java create mode 100644 hibernate-spatial/src/main/java/org/hibernate/spatial/type/SpatialTypeContributorImplementor.java create mode 100644 hibernate-spatial/src/main/java/org/hibernate/spatial/type/TypeContributorResolver.java create mode 100644 hibernate-spatial/src/main/resources/META-INF/services/org.hibernate.boot.model.TypeContributor create mode 100644 hibernate-spatial/src/test/java/org/hibernate/spatial/integration/SpatialTestDataProvider.java create mode 100644 hibernate-spatial/src/test/java/org/hibernate/spatial/integration/TestSpatialSchemaGeneration.java rename hibernate-spatial/src/test/java/org/hibernate/spatial/{integration/geolatte => testing/domain}/GeomEntity.java (84%) rename hibernate-spatial/src/test/java/org/hibernate/spatial/{integration/jts => testing/domain}/JtsGeomEntity.java (87%) create mode 100644 hibernate-spatial/src/test/java/org/hibernate/spatial/testing/domain/SpatialDomainModel.java diff --git a/hibernate-spatial/hibernate-spatial.gradle b/hibernate-spatial/hibernate-spatial.gradle index 84ed8762c5..3ebe4781f4 100644 --- a/hibernate-spatial/hibernate-spatial.gradle +++ b/hibernate-spatial/hibernate-spatial.gradle @@ -19,7 +19,7 @@ dependencies { compile( libraries.postgresql ) - testCompile(libraries.junit) + testCompile(project(':hibernate-testing')) testCompile( project( path: ':hibernate-core', configuration: 'tests' ) ) testCompile(libraries.validation) diff --git a/hibernate-spatial/src/main/java/org/hibernate/spatial/type/PostgreSQLDialectTypeContributor.java b/hibernate-spatial/src/main/java/org/hibernate/spatial/type/PostgreSQLDialectTypeContributor.java new file mode 100644 index 0000000000..2b97ecb683 --- /dev/null +++ b/hibernate-spatial/src/main/java/org/hibernate/spatial/type/PostgreSQLDialectTypeContributor.java @@ -0,0 +1,34 @@ +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * License: GNU Lesser General Public License (LGPL), version 2.1 or later. + * See the lgpl.txt file in the root directory or . + */ + +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * License: GNU Lesser General Public License (LGPL), version 2.1 or later. + * See the lgpl.txt file in the root directory or . + */ + +package org.hibernate.spatial.type; + +import org.hibernate.boot.model.TypeContributions; +import org.hibernate.spatial.GeolatteGeometryJavaTypeDescriptor; +import org.hibernate.spatial.GeolatteGeometryType; +import org.hibernate.spatial.JTSGeometryJavaTypeDescriptor; +import org.hibernate.spatial.JTSGeometryType; +import org.hibernate.spatial.dialect.postgis.PGGeometryTypeDescriptor; + +public class PostgisTypeContributor implements SpatialTypeContributorImplementor{ + + public void contribute(TypeContributions typeContributions) { + typeContributions.contributeType( new GeolatteGeometryType( PGGeometryTypeDescriptor.INSTANCE_WKB_1 ) ); + typeContributions.contributeType( new JTSGeometryType( PGGeometryTypeDescriptor.INSTANCE_WKB_1 ) ); + + //Isn't this redundant? + typeContributions.contributeJavaTypeDescriptor( GeolatteGeometryJavaTypeDescriptor.INSTANCE ); + typeContributions.contributeJavaTypeDescriptor( JTSGeometryJavaTypeDescriptor.INSTANCE ); + } +} diff --git a/hibernate-spatial/src/main/java/org/hibernate/spatial/type/SpatialTypeContributor.java b/hibernate-spatial/src/main/java/org/hibernate/spatial/type/SpatialTypeContributor.java new file mode 100644 index 0000000000..d36bca7646 --- /dev/null +++ b/hibernate-spatial/src/main/java/org/hibernate/spatial/type/SpatialTypeContributor.java @@ -0,0 +1,33 @@ +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * License: GNU Lesser General Public License (LGPL), version 2.1 or later. + * See the lgpl.txt file in the root directory or . + */ + +package org.hibernate.spatial.type; + +import org.hibernate.boot.model.TypeContributions; +import org.hibernate.boot.model.TypeContributor; +import org.hibernate.dialect.Dialect; +import org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator; +import org.hibernate.engine.jdbc.spi.JdbcServices; +import org.hibernate.service.ServiceRegistry; +import org.hibernate.spatial.GeolatteGeometryJavaTypeDescriptor; +import org.hibernate.spatial.GeolatteGeometryType; +import org.hibernate.spatial.JTSGeometryJavaTypeDescriptor; +import org.hibernate.spatial.JTSGeometryType; +import org.hibernate.spatial.dialect.postgis.PGGeometryTypeDescriptor; + +public class SpatialTypeContributor implements TypeContributor { + @Override + public void contribute( + TypeContributions typeContributions, ServiceRegistry serviceRegistry) { + + typeContributions.contributeType( new GeolatteGeometryType( PGGeometryTypeDescriptor.INSTANCE_WKB_1 ) ); + typeContributions.contributeType( new JTSGeometryType( PGGeometryTypeDescriptor.INSTANCE_WKB_1 ) ); + + typeContributions.contributeJavaTypeDescriptor( GeolatteGeometryJavaTypeDescriptor.INSTANCE ); + typeContributions.contributeJavaTypeDescriptor( JTSGeometryJavaTypeDescriptor.INSTANCE ); + } +} diff --git a/hibernate-spatial/src/main/java/org/hibernate/spatial/type/SpatialTypeContributorImplementor.java b/hibernate-spatial/src/main/java/org/hibernate/spatial/type/SpatialTypeContributorImplementor.java new file mode 100644 index 0000000000..1c91b07229 --- /dev/null +++ b/hibernate-spatial/src/main/java/org/hibernate/spatial/type/SpatialTypeContributorImplementor.java @@ -0,0 +1,11 @@ +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * License: GNU Lesser General Public License (LGPL), version 2.1 or later. + * See the lgpl.txt file in the root directory or . + */ + +package org.hibernate.spatial.type; + +public interface SpatialTypeContributorImplementor { +} diff --git a/hibernate-spatial/src/main/java/org/hibernate/spatial/type/TypeContributorResolver.java b/hibernate-spatial/src/main/java/org/hibernate/spatial/type/TypeContributorResolver.java new file mode 100644 index 0000000000..02d6a6a525 --- /dev/null +++ b/hibernate-spatial/src/main/java/org/hibernate/spatial/type/TypeContributorResolver.java @@ -0,0 +1,11 @@ +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * License: GNU Lesser General Public License (LGPL), version 2.1 or later. + * See the lgpl.txt file in the root directory or . + */ + +package org.hibernate.spatial.type; + +public class TypeContributorResolver { +} diff --git a/hibernate-spatial/src/main/resources/META-INF/services/org.hibernate.boot.model.TypeContributor b/hibernate-spatial/src/main/resources/META-INF/services/org.hibernate.boot.model.TypeContributor new file mode 100644 index 0000000000..e69de29bb2 diff --git a/hibernate-spatial/src/test/java/org/hibernate/spatial/integration/AbstractTestStoreRetrieve.java b/hibernate-spatial/src/test/java/org/hibernate/spatial/integration/AbstractTestStoreRetrieve.java index 93858cd654..d799d2022d 100644 --- a/hibernate-spatial/src/test/java/org/hibernate/spatial/integration/AbstractTestStoreRetrieve.java +++ b/hibernate-spatial/src/test/java/org/hibernate/spatial/integration/AbstractTestStoreRetrieve.java @@ -10,39 +10,29 @@ package org.hibernate.spatial.integration; import java.util.HashMap; import java.util.List; import java.util.Map; +import javax.persistence.Query; -import org.hibernate.Session; -import org.hibernate.Transaction; import org.hibernate.dialect.Dialect; -import org.hibernate.query.Query; -import org.hibernate.query.criteria.JpaCriteriaQuery; -import org.hibernate.spatial.integration.geolatte.GeomEntity; +import org.hibernate.engine.spi.SessionImplementor; import org.hibernate.spatial.testing.GeometryEquality; -import org.hibernate.spatial.testing.SpatialFunctionalTestCase; import org.hibernate.spatial.testing.datareader.TestDataElement; +import org.hibernate.spatial.testing.domain.SpatialDomainModel; -import org.junit.Test; +import org.hibernate.testing.orm.junit.DomainModel; +import org.hibernate.testing.orm.junit.SessionFactory; +import org.hibernate.testing.orm.junit.SessionFactoryScope; +import org.junit.jupiter.api.Test; -import org.geolatte.geom.codec.WktDecodeException; +import static org.junit.jupiter.api.Assertions.assertEquals; -import static junit.framework.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; - -//import org.geolatte.geom.C3DM; -//import org.geolatte.geom.Geometry; -//import org.geolatte.geom.GeometryEquality; -//import org.geolatte.geom.GeometryPointEquality; /** * Created by Karel Maesen, Geovise BVBA on 15/02/2018. */ -public abstract class AbstractTestStoreRetrieve> extends SpatialFunctionalTestCase { - - - public void prepareTest() { - - } +@DomainModel(modelDescriptorClasses = SpatialDomainModel.class) +@SessionFactory +public abstract class AbstractTestStoreRetrieve> + extends SpatialTestDataProvider { protected abstract GeometryEquality getGeometryEquality(); @@ -50,12 +40,26 @@ public abstract class AbstractTestStoreRetrieve> protected abstract E createFrom(TestDataElement element, Dialect dialect); + private Map stored = new HashMap<>(); + @Test - public void testAfterStoreRetrievingEqualObject() throws WktDecodeException { - Map stored = new HashMap<>(); + public void testStoringGeomEntity(SessionFactoryScope scope) { + //check whether we retrieve exactly what we store - storeTestObjects( stored ); - retrieveAndCompare( stored ); + scope.inTransaction( this::storeTestObjects ); + scope.inTransaction( this::retrieveAndCompare ); + } + + @SuppressWarnings("unchecked") + private void retrieveAndCompare(SessionImplementor session) { + Query query = session.createQuery( "from " + this.getGeomEntityClass().getCanonicalName() ); + List results = (List) query.getResultList(); + results.stream().forEach( this::isInStored ); + } + + private void isInStored(E entity) { + E input = stored.get( entity.getId() ); + assertEquals( entity, input ); } @Test @@ -64,36 +68,6 @@ public abstract class AbstractTestStoreRetrieve> retrieveNullGeometry(); } - private void retrieveAndCompare(Map stored) { - int id = -1; - Transaction tx = null; - Session session = null; - GeometryEquality geomEq = getGeometryEquality(); - try { - session = openSession(); - tx = session.beginTransaction(); - for ( E storedEntity : stored.values() ) { - id = storedEntity.getId(); - E retrievedEntity = session.get( getGeomEntityClass(), id ); - G retrievedGeometry = retrievedEntity.getGeom(); - G storedGeometry = storedEntity.getGeom(); - String msg = createFailureMessage( storedEntity.getId(), storedGeometry, retrievedGeometry ); - assertTrue( msg, geomEq.test( storedGeometry, retrievedGeometry ) ); - } - tx.commit(); - } - catch (Exception e) { - if ( tx != null ) { - tx.rollback(); - } - throw new RuntimeException( String.format( "Failure on case: %d", id ), e ); - } - finally { - if ( session != null ) { - session.close(); - } - } - } private String createFailureMessage(int id, G storedGeometry, G retrievedGeometry) { String expectedText = ( storedGeometry != null ? storedGeometry.toString() : "NULL" ); @@ -106,88 +80,21 @@ public abstract class AbstractTestStoreRetrieve> ); } - private void storeTestObjects(Map stored) { - Session session = null; - Transaction tx = null; - int id = -1; - try { - session = openSession(); - Dialect dialect = sessionFactory().getJdbcServices().getDialect(); - // Every testsuite-suite instance is committed seperately - // to improve feedback in case of failure - for ( TestDataElement element : testData ) { - id = element.id; - tx = session.beginTransaction(); - E entity = createFrom( element, dialect ); - stored.put( entity.getId(), entity ); - session.save( entity ); - tx.commit(); - } - } - catch (Exception e) { - if ( tx != null ) { - tx.rollback(); - } - throw new RuntimeException( "Failed storing testsuite-suite object with id:" + id, e ); - } - finally { - if ( session != null ) { - session.close(); - } + private void storeTestObjects(SessionImplementor session) { + // Every testsuite-suite instance is committed seperately + // to improve feedback in case of failure + for ( TestDataElement element : testData ) { + E entity = createFrom( element, session.getJdbcServices().getDialect() ); + stored.put( entity.getId(), entity ); + session.save( entity ); } } + private void storeNullGeometry() { - GeomEntity entity = null; - Session session = null; - Transaction tx = null; - try { - session = openSession(); - tx = session.beginTransaction(); - entity = new GeomEntity(); - entity.setId( 1 ); - entity.setType( "NULL OBJECT" ); - session.save( entity ); - tx.commit(); - } - catch (Exception e) { - if ( tx != null ) { - tx.rollback(); - } - Integer id = entity != null ? entity.getId() : -1; - throw new RuntimeException( "Failed storing testsuite-suite object with id:" + id, e ); - } - finally { - if ( session != null ) { - session.close(); - } - } + } private void retrieveNullGeometry() { - Transaction tx = null; - Session session = null; - try { - session = openSession(); - tx = session.beginTransaction(); - JpaCriteriaQuery criteria = session.getCriteriaBuilder().createQuery( GeomEntity.class ); - Query query = session.createQuery( criteria ); - List retrieved = query.list(); - assertEquals( "Expected exactly one result", 1, retrieved.size() ); - GeomEntity entity = retrieved.get( 0 ); - assertNull( entity.getGeom() ); - tx.commit(); - } - catch (Exception e) { - if ( tx != null ) { - tx.rollback(); - } - throw new RuntimeException( e ); - } - finally { - if ( session != null ) { - session.close(); - } - } } } diff --git a/hibernate-spatial/src/test/java/org/hibernate/spatial/integration/DecodeUtil.java b/hibernate-spatial/src/test/java/org/hibernate/spatial/integration/DecodeUtil.java index c72b7c8e51..3ccd2d5b03 100644 --- a/hibernate-spatial/src/test/java/org/hibernate/spatial/integration/DecodeUtil.java +++ b/hibernate-spatial/src/test/java/org/hibernate/spatial/integration/DecodeUtil.java @@ -8,6 +8,7 @@ package org.hibernate.spatial.integration; import org.hibernate.dialect.AbstractHANADialect; +import org.hibernate.dialect.DB2Dialect; import org.hibernate.dialect.Dialect; import org.hibernate.spatial.dialect.db2.DB2SpatialDialect; @@ -24,7 +25,7 @@ public class DecodeUtil { if ( dialect instanceof AbstractHANADialect ) { decoder = Wkt.newDecoder( Wkt.Dialect.HANA_EWKT ); } - else if ( dialect instanceof DB2SpatialDialect ) { + else if ( dialect instanceof DB2Dialect ) { decoder = Wkt.newDecoder( Wkt.Dialect.DB2_WKT ); } else { diff --git a/hibernate-spatial/src/test/java/org/hibernate/spatial/integration/SpatialTestDataProvider.java b/hibernate-spatial/src/test/java/org/hibernate/spatial/integration/SpatialTestDataProvider.java new file mode 100644 index 0000000000..fb1800ed7b --- /dev/null +++ b/hibernate-spatial/src/test/java/org/hibernate/spatial/integration/SpatialTestDataProvider.java @@ -0,0 +1,63 @@ +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * License: GNU Lesser General Public License (LGPL), version 2.1 or later. + * See the lgpl.txt file in the root directory or . + */ + +package org.hibernate.spatial.integration; + +import java.sql.BatchUpdateException; +import java.sql.SQLException; + +import javax.persistence.Query; + +import org.hibernate.cfg.NotYetImplementedException; +import org.hibernate.engine.spi.SessionImplementor; +import org.hibernate.spatial.testing.AbstractExpectationsFactory; +import org.hibernate.spatial.testing.DataSourceUtils; +import org.hibernate.spatial.testing.JTSGeometryEquality; +import org.hibernate.spatial.testing.TestSupportFactories; +import org.hibernate.spatial.testing.datareader.TestData; +import org.hibernate.spatial.testing.datareader.TestSupport; + +import org.hibernate.testing.orm.junit.DialectContext; + +public class SpatialTestDataProvider { + protected final static String JTS = "jts"; + + protected TestData testData; + protected JTSGeometryEquality geometryEquality; + protected AbstractExpectationsFactory expectationsFactory; + + + public SpatialTestDataProvider() { + try { + TestSupport support = TestSupportFactories.instance().getTestSupportFactory( DialectContext.getDialect() ); + testData = support.createTestData( TestSupport.TestDataPurpose.StoreRetrieveData ); + geometryEquality = support.createGeometryEquality(); + } + catch (InstantiationException | IllegalAccessException e) { + throw new RuntimeException( e ); + } + } + + /** + * Inserts the test data via a direct route (JDBC). + */ + public void prepareTest(SessionImplementor session) { + throw new NotYetImplementedException(); + } + + + + + protected String entityName(String pckg) { + if ( JTS.equalsIgnoreCase( pckg ) ) { + return "org.hibernate.spatial.testing.domain.JtsGeomEntity"; + } + else { + return "org.hibernate.spatial.testing.domain.GeomEntity"; + } + } +} diff --git a/hibernate-spatial/src/test/java/org/hibernate/spatial/integration/TestGeolatteSpatialPredicates.java b/hibernate-spatial/src/test/java/org/hibernate/spatial/integration/TestGeolatteSpatialPredicates.java index 9ce8a9b776..388cd7eca9 100644 --- a/hibernate-spatial/src/test/java/org/hibernate/spatial/integration/TestGeolatteSpatialPredicates.java +++ b/hibernate-spatial/src/test/java/org/hibernate/spatial/integration/TestGeolatteSpatialPredicates.java @@ -20,7 +20,7 @@ import org.hibernate.Transaction; import org.hibernate.spatial.HSMessageLogger; import org.hibernate.spatial.SpatialFunction; import org.hibernate.spatial.dialect.hana.HANASpatialDialect; -import org.hibernate.spatial.integration.geolatte.GeomEntity; +import org.hibernate.spatial.testing.domain.GeomEntity; import org.hibernate.spatial.predicate.GeolatteSpatialPredicates; import org.hibernate.spatial.testing.SpatialDialectMatcher; import org.hibernate.spatial.testing.SpatialFunctionalTestCase; diff --git a/hibernate-spatial/src/test/java/org/hibernate/spatial/integration/TestJTSSpatialPredicates.java b/hibernate-spatial/src/test/java/org/hibernate/spatial/integration/TestJTSSpatialPredicates.java index 488f72f66e..c2b78ba7eb 100644 --- a/hibernate-spatial/src/test/java/org/hibernate/spatial/integration/TestJTSSpatialPredicates.java +++ b/hibernate-spatial/src/test/java/org/hibernate/spatial/integration/TestJTSSpatialPredicates.java @@ -20,7 +20,7 @@ import org.hibernate.Transaction; import org.hibernate.spatial.HSMessageLogger; import org.hibernate.spatial.SpatialFunction; import org.hibernate.spatial.dialect.hana.HANASpatialDialect; -import org.hibernate.spatial.integration.jts.JtsGeomEntity; +import org.hibernate.spatial.testing.domain.JtsGeomEntity; import org.hibernate.spatial.predicate.JTSSpatialPredicates; import org.hibernate.spatial.testing.SpatialDialectMatcher; import org.hibernate.spatial.testing.SpatialFunctionalTestCase; diff --git a/hibernate-spatial/src/test/java/org/hibernate/spatial/integration/TestSpatialSchemaGeneration.java b/hibernate-spatial/src/test/java/org/hibernate/spatial/integration/TestSpatialSchemaGeneration.java new file mode 100644 index 0000000000..4bf2937c4a --- /dev/null +++ b/hibernate-spatial/src/test/java/org/hibernate/spatial/integration/TestSpatialSchemaGeneration.java @@ -0,0 +1,60 @@ +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * License: GNU Lesser General Public License (LGPL), version 2.1 or later. + * See the lgpl.txt file in the root directory or . + */ + +package org.hibernate.spatial.integration; + +import java.io.File; +import java.io.IOException; +import java.nio.charset.Charset; +import java.nio.file.Files; +import java.util.EnumSet; +import java.util.List; +import java.util.Locale; +import java.util.stream.Collectors; + +import org.hibernate.boot.spi.MetadataImplementor; +import org.hibernate.spatial.testing.domain.SpatialDomainModel; +import org.hibernate.tool.hbm2ddl.SchemaExport; +import org.hibernate.tool.hbm2ddl.SchemaUpdate; +import org.hibernate.tool.schema.TargetType; + +import org.hibernate.testing.orm.junit.DomainModel; +import org.hibernate.testing.orm.junit.SessionFactory; +import org.hibernate.testing.orm.junit.SessionFactoryScope; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.stringContainsInOrder; +import static org.junit.jupiter.api.Assertions.assertFalse; + +@DomainModel(modelDescriptorClasses = SpatialDomainModel.class) +@SessionFactory +public class TestSpatialSchemaGeneration { + + File output; + + @BeforeEach + public void setup() throws IOException { + output = File.createTempFile( "update_script", ".sql" ); + output.deleteOnExit(); + } + + @Test + public void testCreatedSchemaHasGeometryField(SessionFactoryScope scope) throws IOException { + + MetadataImplementor metadata = scope.getMetadataImplementor(); + new SchemaExport() + .setOverrideOutputFileContent() + .setOutputFile( output.getAbsolutePath() ) + .setFormat( false ) + .execute( EnumSet.of( TargetType.SCRIPT ), SchemaExport.Action.BOTH, metadata ); + final List sqlLines = Files.readAllLines( output.toPath(), Charset.defaultCharset() ); + String result = sqlLines.stream().collect( Collectors.joining( " " ) ).toLowerCase( Locale.ROOT ); + assertThat( result, stringContainsInOrder( List.of( "geometry", "geom" ) ) ); + } +} diff --git a/hibernate-spatial/src/test/java/org/hibernate/spatial/integration/geolatte/TestStoreRetrieveUsingGeolatte.java b/hibernate-spatial/src/test/java/org/hibernate/spatial/integration/geolatte/TestStoreRetrieveUsingGeolatte.java index 119cb2855e..e85ced1f65 100644 --- a/hibernate-spatial/src/test/java/org/hibernate/spatial/integration/geolatte/TestStoreRetrieveUsingGeolatte.java +++ b/hibernate-spatial/src/test/java/org/hibernate/spatial/integration/geolatte/TestStoreRetrieveUsingGeolatte.java @@ -13,6 +13,7 @@ import org.hibernate.spatial.testing.GeolatteGeometryEquality; import org.hibernate.spatial.testing.GeometryEquality; import org.hibernate.spatial.testing.SpatialDialectMatcher; import org.hibernate.spatial.testing.datareader.TestDataElement; +import org.hibernate.spatial.testing.domain.GeomEntity; import org.hibernate.testing.Skip; @@ -25,7 +26,7 @@ import org.geolatte.geom.codec.WktDecodeException; * This testsuite-suite class verifies whether the Geometrys retrieved * are equal to the Geometrys stored. */ -@Skip(condition = SpatialDialectMatcher.class, message = "No Spatial Dialect") + public class TestStoreRetrieveUsingGeolatte extends AbstractTestStoreRetrieve { private static final HSMessageLogger LOG = Logger.getMessageLogger( diff --git a/hibernate-spatial/src/test/java/org/hibernate/spatial/integration/jts/TestStoreRetrieveUsingJTS.java b/hibernate-spatial/src/test/java/org/hibernate/spatial/integration/jts/TestStoreRetrieveUsingJTS.java index aca65e2cda..ca3dfca068 100644 --- a/hibernate-spatial/src/test/java/org/hibernate/spatial/integration/jts/TestStoreRetrieveUsingJTS.java +++ b/hibernate-spatial/src/test/java/org/hibernate/spatial/integration/jts/TestStoreRetrieveUsingJTS.java @@ -13,6 +13,7 @@ import org.hibernate.spatial.testing.GeometryEquality; import org.hibernate.spatial.testing.JTSGeometryEquality; import org.hibernate.spatial.testing.SpatialDialectMatcher; import org.hibernate.spatial.testing.datareader.TestDataElement; +import org.hibernate.spatial.testing.domain.JtsGeomEntity; import org.hibernate.testing.Skip; diff --git a/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/SpatialFunctionalTestCase.java b/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/SpatialFunctionalTestCase.java index 9a31cedf37..ce4528b7e4 100644 --- a/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/SpatialFunctionalTestCase.java +++ b/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/SpatialFunctionalTestCase.java @@ -21,9 +21,9 @@ import org.hibernate.cfg.NotYetImplementedException; import org.hibernate.dialect.Dialect; import org.hibernate.service.ServiceRegistry; import org.hibernate.spatial.HSMessageLogger; -import org.hibernate.spatial.SpatialDialect; import org.hibernate.spatial.SpatialFunction; -import org.hibernate.spatial.integration.jts.JtsGeomEntity; +import org.hibernate.spatial.testing.domain.GeomEntity; +import org.hibernate.spatial.testing.domain.JtsGeomEntity; import org.hibernate.spatial.testing.datareader.TestData; import org.hibernate.spatial.testing.datareader.TestSupport; @@ -113,7 +113,7 @@ public abstract class SpatialFunctionalTestCase extends BaseCoreFunctionalTestCa TestSupport support = TestSupportFactories.instance().getTestSupportFactory( getDialect() ); dataSourceUtils = support.createDataSourceUtil( serviceRegistry ); expectationsFactory = support.createExpectationsFactory( dataSourceUtils ); - testData = support.createTestData( this ); + testData = support.createTestData( TestSupport.TestDataPurpose.StoreRetrieveData ); geometryEquality = support.createGeometryEquality(); } catch (Exception e) { @@ -151,7 +151,7 @@ public abstract class SpatialFunctionalTestCase extends BaseCoreFunctionalTestCa @Override protected Class[] getAnnotatedClasses() { return new Class[] { - org.hibernate.spatial.integration.geolatte.GeomEntity.class, + GeomEntity.class, JtsGeomEntity.class }; } @@ -252,10 +252,10 @@ public abstract class SpatialFunctionalTestCase extends BaseCoreFunctionalTestCa protected String entityName(String pckg) { if ( JTS.equalsIgnoreCase( pckg ) ) { - return "org.hibernate.spatial.integration.jts.JtsGeomEntity"; + return "org.hibernate.spatial.testing.domain.JtsGeomEntity"; } else { - return "org.hibernate.spatial.integration.geolatte.GeomEntity"; + return "org.hibernate.spatial.testing.domain.GeomEntity"; } } diff --git a/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/TestSupportFactories.java b/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/TestSupportFactories.java index a39491d3c1..b714d8594e 100644 --- a/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/TestSupportFactories.java +++ b/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/TestSupportFactories.java @@ -11,6 +11,7 @@ import org.hibernate.dialect.CockroachDialect; import org.hibernate.dialect.Dialect; import org.hibernate.dialect.MariaDBDialect; import org.hibernate.dialect.PostgreSQL82Dialect; +import org.hibernate.dialect.PostgreSQLDialect; import org.hibernate.spatial.SpatialDialect; import org.hibernate.spatial.testing.datareader.TestSupport; import org.hibernate.spatial.testing.dialects.cockroachdb.CockroachDBTestSupport; @@ -43,7 +44,7 @@ public class TestSupportFactories { private static Class getSupportFactoryClass(Dialect dialect) { String canonicalName = dialect.getClass().getCanonicalName(); - if ( ( dialect instanceof SpatialDialect ) && PostgreSQL82Dialect.class.isAssignableFrom( dialect.getClass() ) ) { + if ( PostgreSQLDialect.class.isAssignableFrom( dialect.getClass() ) ) { //this test works because all postgis dialects ultimately derive of the Postgresql82Dialect return PostgisTestSupport.class; } diff --git a/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/datareader/TestSupport.java b/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/datareader/TestSupport.java index 64fa090a12..c5b213d301 100644 --- a/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/datareader/TestSupport.java +++ b/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/datareader/TestSupport.java @@ -23,14 +23,21 @@ import org.hibernate.spatial.testing.JTSGeometryEquality; import org.hibernate.spatial.testing.SQLExpressionTemplate; import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase; +import junit.framework.TestCase; /** * @author Karel Maesen, Geovise BVBA * creation-date: Sep 30, 2010 */ +@Deprecated public abstract class TestSupport { + public enum TestDataPurpose { + SpatialFunctionsData, + StoreRetrieveData + } + protected ConfigurationService configurationService; public DataSourceUtils createDataSourceUtil(ServiceRegistry serviceRegistry) { @@ -42,7 +49,7 @@ public abstract class TestSupport { return new JTSGeometryEquality(); } - public abstract TestData createTestData(BaseCoreFunctionalTestCase testcase); + public abstract TestData createTestData(TestDataPurpose purpose); public abstract AbstractExpectationsFactory createExpectationsFactory(DataSourceUtils dataSourceUtils); diff --git a/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/dialects/cockroachdb/CockroachDBTestSupport.java b/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/dialects/cockroachdb/CockroachDBTestSupport.java index 510c2bc9ce..8a91b46003 100644 --- a/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/dialects/cockroachdb/CockroachDBTestSupport.java +++ b/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/dialects/cockroachdb/CockroachDBTestSupport.java @@ -18,17 +18,18 @@ import org.hibernate.spatial.testing.datareader.TestSupport; import org.hibernate.spatial.testing.dialects.postgis.PostgisExpressionTemplate; import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase; +import junit.framework.TestCase; public class CockroachDBTestSupport extends TestSupport { + @Override - public TestData createTestData(BaseCoreFunctionalTestCase testcase) { - Class testcaseClass = testcase.getClass(); - if ( ( testcaseClass == TestSpatialFunctions.class ) || - ( testcaseClass == TestJTSSpatialPredicates.class ) || - ( testcaseClass == TestGeolatteSpatialPredicates.class ) ) { - return TestData.fromFile( "cockroachdb/functions-test.xml" ); + public TestData createTestData(TestDataPurpose purpose) { + switch ( purpose ) { + case SpatialFunctionsData: + return TestData.fromFile( "cockroachdb/functions-test.xml" ); + default: + return TestData.fromFile( "cockroachdb/test-data-set.xml" ); } - return TestData.fromFile( "cockroachdb/test-data-set.xml" ); } @Override diff --git a/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/dialects/db2/DB2TestSupport.java b/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/dialects/db2/DB2TestSupport.java index ef3c00a5e7..b4984f5f55 100644 --- a/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/dialects/db2/DB2TestSupport.java +++ b/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/dialects/db2/DB2TestSupport.java @@ -20,14 +20,16 @@ import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase; */ public class DB2TestSupport extends TestSupport { - public TestData createTestData(BaseCoreFunctionalTestCase testcase) { - if ( "org.hibernate.spatial.integration.TestSpatialFunctions".equals( - testcase.getClass().getCanonicalName() ) ) { - return TestData.fromFile( "db2/test-db2nozm-only-polygon.xml" ); + public TestData createTestData(TestDataPurpose purpose) { + switch ( purpose ) { + case SpatialFunctionsData: + return TestData.fromFile( "db2/test-db2nozm-only-polygon.xml" ); + default: + return TestData.fromFile( "db2/test-db2nozm-data-set.xml" ); } - return TestData.fromFile( "db2/test-db2nozm-data-set.xml" ); } + public DB2ExpectationsFactory createExpectationsFactory(DataSourceUtils dataSourceUtils) { return new DB2ExpectationsFactory( dataSourceUtils ); } diff --git a/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/dialects/h2geodb/GeoDBTestSupport.java b/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/dialects/h2geodb/GeoDBTestSupport.java index 3146960fa5..fc1459f9d4 100644 --- a/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/dialects/h2geodb/GeoDBTestSupport.java +++ b/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/dialects/h2geodb/GeoDBTestSupport.java @@ -39,7 +39,8 @@ public class GeoDBTestSupport extends TestSupport { } } - public TestData createTestData(BaseCoreFunctionalTestCase testcase) { + @Override + public TestData createTestData(TestDataPurpose purpose) { return TestData.fromFile( "h2geodb/test-geodb-data-set.xml" ); } diff --git a/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/dialects/hana/HANATestSupport.java b/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/dialects/hana/HANATestSupport.java index 1fca2736c7..c1e86e5a3e 100644 --- a/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/dialects/hana/HANATestSupport.java +++ b/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/dialects/hana/HANATestSupport.java @@ -16,8 +16,9 @@ import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase; public class HANATestSupport extends TestSupport { + @Override - public TestData createTestData(BaseCoreFunctionalTestCase testcase) { + public TestData createTestData(TestDataPurpose purpose) { return TestData.fromFile( "hana/test-hana-data-set.xml" ); } diff --git a/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/dialects/mariadb/MariaDBTestSupport.java b/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/dialects/mariadb/MariaDBTestSupport.java index 8eae9b69f3..03dedf3eb6 100644 --- a/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/dialects/mariadb/MariaDBTestSupport.java +++ b/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/dialects/mariadb/MariaDBTestSupport.java @@ -16,10 +16,10 @@ import org.hibernate.spatial.testing.datareader.TestSupport; import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase; public class MariaDBTestSupport extends TestSupport { - @Override - public TestData createTestData(BaseCoreFunctionalTestCase testcase) { - return TestData.fromFile( "mariadb/test-mariadb-functions-data-set.xml" ); + @Override + public TestData createTestData(TestDataPurpose purpose) { + return TestData.fromFile( "mariadb/test-mariadb-functions-data-set.xml" ); } @Override diff --git a/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/dialects/mysql/MySQL8TestSupport.java b/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/dialects/mysql/MySQL8TestSupport.java index cb1cf41dee..460b16f5dc 100644 --- a/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/dialects/mysql/MySQL8TestSupport.java +++ b/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/dialects/mysql/MySQL8TestSupport.java @@ -19,10 +19,11 @@ import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase; public class MySQL8TestSupport extends MySQLTestSupport { @Override - public TestData createTestData(BaseCoreFunctionalTestCase testcase) { + public TestData createTestData(TestDataPurpose purpose) { return TestData.fromFile( "mysql/test-mysql8-functions-data-set.xml" ); } + @Override public SQLExpressionTemplate getSQLExpressionTemplate() { return new MySQL8ExpressionTemplate(); diff --git a/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/dialects/mysql/MySQLTestSupport.java b/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/dialects/mysql/MySQLTestSupport.java index 9ae56a6f5b..b37d4b9dc5 100644 --- a/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/dialects/mysql/MySQLTestSupport.java +++ b/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/dialects/mysql/MySQLTestSupport.java @@ -16,6 +16,7 @@ import org.hibernate.spatial.testing.datareader.TestData; import org.hibernate.spatial.testing.datareader.TestSupport; import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase; +import junit.framework.TestCase; /** * @author Karel Maesen, Geovise BVBA @@ -23,11 +24,7 @@ import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase; */ public class MySQLTestSupport extends TestSupport { - @Override - public TestData createTestData(BaseCoreFunctionalTestCase testcase) { - return TestData.fromFile( "mysql/test-mysql-functions-data-set.xml" ); - } @Override public AbstractExpectationsFactory createExpectationsFactory(DataSourceUtils dataSourceUtils) { @@ -39,6 +36,11 @@ public class MySQLTestSupport extends TestSupport { return new MySQLGeometryEquality(); } + @Override + public TestData createTestData(TestDataPurpose purpose) { + return TestData.fromFile( "mysql/test-mysql-functions-data-set.xml" ); + } + @Override public SQLExpressionTemplate getSQLExpressionTemplate() { return new MySQLExpressionTemplate(); diff --git a/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/dialects/oracle/OracleSDOTestSupport.java b/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/dialects/oracle/OracleSDOTestSupport.java index 311c4776c4..3125f59e9d 100644 --- a/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/dialects/oracle/OracleSDOTestSupport.java +++ b/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/dialects/oracle/OracleSDOTestSupport.java @@ -24,7 +24,7 @@ import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase; public class OracleSDOTestSupport extends TestSupport { @Override - public TestData createTestData(BaseCoreFunctionalTestCase testcase) { + public TestData createTestData(TestDataPurpose purpose) { return TestData.fromFile( "oracle10g/test-sdo-geometry-data-set-2D.xml", new SDOTestDataReader() ); } diff --git a/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/dialects/postgis/PostgisTestSupport.java b/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/dialects/postgis/PostgisTestSupport.java index e38f5ffc8a..50bca54ca7 100644 --- a/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/dialects/postgis/PostgisTestSupport.java +++ b/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/dialects/postgis/PostgisTestSupport.java @@ -26,14 +26,14 @@ import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase; public class PostgisTestSupport extends TestSupport { - public TestData createTestData(BaseCoreFunctionalTestCase testcase) { - Class testcaseClass = testcase.getClass(); - if ( testcaseClass == TestSpatialFunctions.class || - testcaseClass == TestJTSSpatialPredicates.class || - testcaseClass == TestGeolatteSpatialPredicates.class ) { - return TestData.fromFile( "postgis-functions-test.xml" ); + @Override + public TestData createTestData(TestDataPurpose purpose) { + switch ( purpose ) { + case SpatialFunctionsData: + return TestData.fromFile( "postgis-functions-test.xml" ); + default: + return TestData.fromFile( "test-data-set.xml" ); } - return TestData.fromFile( "test-data-set.xml" ); } public AbstractExpectationsFactory createExpectationsFactory(DataSourceUtils dataSourceUtils) { diff --git a/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/dialects/sqlserver/SQLServerTestSupport.java b/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/dialects/sqlserver/SQLServerTestSupport.java index e197548850..9d5cc2e898 100644 --- a/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/dialects/sqlserver/SQLServerTestSupport.java +++ b/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/dialects/sqlserver/SQLServerTestSupport.java @@ -20,8 +20,8 @@ import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase; */ public class SQLServerTestSupport extends TestSupport { - - public TestData createTestData(BaseCoreFunctionalTestCase testcase) { + @Override + public TestData createTestData(TestDataPurpose purpose) { return TestData.fromFile( "test-data-set.xml" ); } diff --git a/hibernate-spatial/src/test/java/org/hibernate/spatial/integration/geolatte/GeomEntity.java b/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/domain/GeomEntity.java similarity index 84% rename from hibernate-spatial/src/test/java/org/hibernate/spatial/integration/geolatte/GeomEntity.java rename to hibernate-spatial/src/test/java/org/hibernate/spatial/testing/domain/GeomEntity.java index 9f7baabe86..effa978521 100644 --- a/hibernate-spatial/src/test/java/org/hibernate/spatial/integration/geolatte/GeomEntity.java +++ b/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/domain/GeomEntity.java @@ -5,7 +5,14 @@ * See the lgpl.txt file in the root directory or . */ -package org.hibernate.spatial.integration.geolatte; +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * License: GNU Lesser General Public License (LGPL), version 2.1 or later. + * See the lgpl.txt file in the root directory or . + */ + +package org.hibernate.spatial.testing.domain; import javax.persistence.Entity; import javax.persistence.Id; @@ -36,7 +43,7 @@ public class GeomEntity implements GeomEntityLike { private String type; private Geometry geom; - static GeomEntity createFrom(TestDataElement element, Dialect dialect) throws WktDecodeException { + public static GeomEntity createFrom(TestDataElement element, Dialect dialect) throws WktDecodeException { WktDecoder decoder = getWktDecoder( dialect ); Geometry geom = decoder.decode( element.wkt ); GeomEntity result = new GeomEntity(); diff --git a/hibernate-spatial/src/test/java/org/hibernate/spatial/integration/jts/JtsGeomEntity.java b/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/domain/JtsGeomEntity.java similarity index 87% rename from hibernate-spatial/src/test/java/org/hibernate/spatial/integration/jts/JtsGeomEntity.java rename to hibernate-spatial/src/test/java/org/hibernate/spatial/testing/domain/JtsGeomEntity.java index 5505030b75..dd412cc366 100644 --- a/hibernate-spatial/src/test/java/org/hibernate/spatial/integration/jts/JtsGeomEntity.java +++ b/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/domain/JtsGeomEntity.java @@ -5,7 +5,14 @@ * See the lgpl.txt file in the root directory or . */ -package org.hibernate.spatial.integration.jts; +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * License: GNU Lesser General Public License (LGPL), version 2.1 or later. + * See the lgpl.txt file in the root directory or . + */ + +package org.hibernate.spatial.testing.domain; import javax.persistence.Entity; import javax.persistence.Id; diff --git a/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/domain/SpatialDomainModel.java b/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/domain/SpatialDomainModel.java new file mode 100644 index 0000000000..1afcdc0739 --- /dev/null +++ b/hibernate-spatial/src/test/java/org/hibernate/spatial/testing/domain/SpatialDomainModel.java @@ -0,0 +1,19 @@ +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * License: GNU Lesser General Public License (LGPL), version 2.1 or later. + * See the lgpl.txt file in the root directory or . + */ + +package org.hibernate.spatial.testing.domain; + +import org.hibernate.testing.orm.domain.AbstractDomainModelDescriptor; + +public class SpatialDomainModel extends AbstractDomainModelDescriptor { + public SpatialDomainModel() { + super( + GeomEntity.class, + JtsGeomEntity.class + ); + } +} diff --git a/hibernate-spatial/src/test/resources/hibernate.properties b/hibernate-spatial/src/test/resources/hibernate.properties index fd25e68d2f..537846227a 100644 --- a/hibernate-spatial/src/test/resources/hibernate.properties +++ b/hibernate-spatial/src/test/resources/hibernate.properties @@ -1,3 +1,4 @@ + # # Hibernate, Relational Persistence for Idiomatic Java # @@ -20,11 +21,11 @@ hibernate.connection.init_sql @connection.init_sql@ #hibernate.jdbc.batch_versioned_data true ## Configs for spatial databases (used during testing on local dev environment). # -#hibernate.dialect org.hibernate.spatial.dialect.postgis.PostgisPG95Dialect +#hibernate.dialect org.hibernate.dialect.PostgreSQLDialect #hibernate.connection.driver_class org.postgresql.Driver -#hibernate.connection.url jdbc:postgresql://localhost:9432/ -#hibernate.connection.username hibern8 -#hibernate.connection.password hibern8 +#hibernate.connection.url jdbc:postgresql://localhost:5432/hibernate_orm_test?preparedStatementCacheQueries=0 +#hibernate.connection.username hibernate_orm_test +#hibernate.connection.password hibernate_orm_test ## ## GeoDb (H2 spatial extension) ##