Skip to content

Commit

Permalink
HHH-6511 - Uses Geolatte-Geom WKB encoder/decoder for Postgis dialect.
Browse files Browse the repository at this point in the history
HHH-7126 - Uses Geolatte-Geom WKB encoder/decoder for GeoDB dialect.
  • Loading branch information
maesenka authored and sebersole committed Apr 24, 2015
1 parent 24e7762 commit c9f2777
Show file tree
Hide file tree
Showing 45 changed files with 601 additions and 1,672 deletions.
Binary file not shown.
Expand Up @@ -22,6 +22,7 @@
# Boston, MA 02110-1301 USA # Boston, MA 02110-1301 USA
# #


hibernate.test.new_metadata_mappings = true
hibernate.dialect org.hibernate.spatial.dialect.postgis.PostgisDialect hibernate.dialect org.hibernate.spatial.dialect.postgis.PostgisDialect
hibernate.connection.driver_class org.postgresql.Driver hibernate.connection.driver_class org.postgresql.Driver
hibernate.connection.url jdbc:postgresql://localhost:5432:hibbrtru hibernate.connection.url jdbc:postgresql://localhost:5432:hibbrtru
Expand Down
14 changes: 4 additions & 10 deletions hibernate-spatial/hibernate-spatial.gradle
Expand Up @@ -24,15 +24,9 @@ apply plugin: org.hibernate.build.gradle.testing.matrix.MatrixTestingPlugin


dependencies { dependencies {
compile(project(':hibernate-core')) compile(project(':hibernate-core'))
compile([group: 'com.vividsolutions', name: 'jts', version: '1.12']) {
transitive = false
}
compile([group: 'org.postgis', name: 'postgis-jdbc', version: '1.5.3'])
compile([group: 'postgresql', name: 'postgresql', version: '8.4-701.jdbc4']) compile([group: 'postgresql', name: 'postgresql', version: '8.4-701.jdbc4'])


compile([group: 'org.geolatte', name: 'geolatte-geom', version: '0.12-SNAPSHOT']) compile([group: 'org.geolatte', name: 'geolatte-geom', version: '0.12-SNAPSHOT'])

compile([group: 'com.vividsolutions', name: 'jts', version: '1.12'])


compile(libraries.dom4j) { compile(libraries.dom4j) {
transitive = false transitive = false
Expand All @@ -41,12 +35,12 @@ dependencies {


testCompile(libraries.junit) testCompile(libraries.junit)
testCompile(project(':hibernate-testing')) testCompile(project(':hibernate-testing'))
testRuntime([group: 'commons-dbcp', name: 'commons-dbcp', version: '1.4']) testCompile([group: 'commons-dbcp', name: 'commons-dbcp', version: '1.4'])
// testRuntime([group: 'com.oracle.jdbc', name: 'ojdbc6', version: '11.2.0.3']) // testRuntime([group: 'com.oracle.jdbc', name: 'ojdbc6', version: '11.2.0.3'])
testRuntime([group: 'com.microsoft', name: 'sqljdbc', version: '2.0']) // testRuntime([group: 'com.microsoft', name: 'sqljdbc', version: '2.0'])
// testRuntime("org.opengeo:geodb:0.7") // testRuntime("org.opengeo:geodb:0.7")
// testRuntime("mysql:mysql-connector-java:5.1.15") // testRuntime("mysql:mysql-connector-java:5.1.15")
testRuntime("postgresql:postgresql:8.4-701.jdbc4") // testRuntime("postgresql:postgresql:8.4-701.jdbc4")
testCompile(libraries.validation) testCompile(libraries.validation)
testCompile(libraries.jandex) testCompile(libraries.jandex)
testCompile(libraries.classmate) testCompile(libraries.classmate)
Expand Down
Expand Up @@ -21,18 +21,28 @@


package org.hibernate.spatial.dialect.h2geodb; package org.hibernate.spatial.dialect.h2geodb;


import java.sql.CallableStatement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types; import java.sql.Types;


import org.geolatte.geom.Geometry;

import org.hibernate.spatial.GeometrySqlTypeDescriptor; import org.hibernate.spatial.GeometrySqlTypeDescriptor;
import org.hibernate.type.descriptor.ValueBinder; import org.hibernate.type.descriptor.ValueBinder;
import org.hibernate.type.descriptor.ValueExtractor; import org.hibernate.type.descriptor.ValueExtractor;
import org.hibernate.type.descriptor.WrapperOptions;
import org.hibernate.type.descriptor.java.JavaTypeDescriptor; import org.hibernate.type.descriptor.java.JavaTypeDescriptor;
import org.hibernate.type.descriptor.sql.BasicBinder;
import org.hibernate.type.descriptor.sql.BasicExtractor;


/** /**
* @author Karel Maesen, Geovise BVBA * @author Karel Maesen, Geovise BVBA
* creation-date: 2/29/12 * creation-date: 2/29/12
*/ */
public class GeoDBGeometryTypeDescriptor extends GeometrySqlTypeDescriptor { public class GeoDBGeometryTypeDescriptor extends GeometrySqlTypeDescriptor {

public static final GeoDBGeometryTypeDescriptor INSTANCE = new GeoDBGeometryTypeDescriptor(); public static final GeoDBGeometryTypeDescriptor INSTANCE = new GeoDBGeometryTypeDescriptor();


@Override @Override
Expand All @@ -51,12 +61,39 @@ public boolean canBeRemapped() {
} }


@Override @Override
public <X> ValueBinder<X> getBinder(JavaTypeDescriptor<X> javaTypeDescriptor) { public <X> ValueBinder<X> getBinder(final JavaTypeDescriptor<X> javaTypeDescriptor) {
return (ValueBinder<X>) new GeoDBValueBinder(javaTypeDescriptor); return new BasicBinder<X>( javaTypeDescriptor, this ) {
@Override
protected void doBind(PreparedStatement st, X value, int index, WrapperOptions options)
throws SQLException {
Geometry geometry = getJavaDescriptor().unwrap( value, Geometry.class, options );
st.setBytes( index, GeoDbWkb.to( geometry ) );
}
};
} }


@Override @Override
public <X> ValueExtractor<X> getExtractor(JavaTypeDescriptor<X> javaTypeDescriptor) { public <X> ValueExtractor<X> getExtractor(final JavaTypeDescriptor<X> javaTypeDescriptor) {
return (ValueExtractor<X>) new GeoDBValueExtractor(javaTypeDescriptor); return new BasicExtractor<X>( javaTypeDescriptor, this ) {

@Override
protected X doExtract(ResultSet rs, String name, WrapperOptions options) throws SQLException {
return getJavaDescriptor().wrap( GeoDbWkb.from( rs.getObject( name ) ), options );
}

@Override
protected X doExtract(CallableStatement statement, int index, WrapperOptions options) throws SQLException {
return getJavaDescriptor().wrap( GeoDbWkb.from( statement.getObject( index ) ), options );
}

@Override
protected X doExtract(CallableStatement statement, String name, WrapperOptions options)
throws SQLException {
return getJavaDescriptor().wrap( GeoDbWkb.from( statement.getObject( name ) ), options );
}
};
} }



} }

This file was deleted.

This file was deleted.

0 comments on commit c9f2777

Please sign in to comment.