[postgis-users] Use of GeometryType does not work (yet) in my case

Jan Syryn jan.syryn at trasys.be
Tue Nov 14 06:26:27 PST 2006


Hi all,

I am trying of inserting a geometry into postgres via Hibernate by using
GeometryType.

I build a random geometry generator for testing purposes.

My POJO looks like this:

		@Entity
		public class GeographicalCoverage {

			private Integer id;
			private Geometry footprint;


When I do an insert or an update manually, it works (so nothing is wrong
with the geometry itself):


   		GeographicalCoverage gc = (GeographicalCoverage) it.next();
   		String query = "update geographicalcoverage set footprint =
GeomFromText('"
			+ gc.getFootprint().toString() + "', 4326) where id
= " + id + ";";
   		s.executeUpdate(query);

Now, I want to do it directly in Hibernate:

		GeographicalCoverage geographicalCoverage = new
GeographicalCoverage();
		Polygon polygon = createPolygon();
		geographicalCoverage.setFootprint(polygon);
		em.persist(geographicalCoverage2);

and gets this error:

Caused by: org.postgresql.util.PSQLException: ERROR: new row for relation
"geographicalcoverage" violates check constraint "enforce_srid_footprint"


Upon checking the database, I see that when using the Geometry type for
'footprint', some extra checks were created because I added the footprint
column with command:

		select addgeometrycolumn
('geographicalcoverage','footprint','4326', 'POLYGON',2);

The projection was added because we store all our polygons in this
projection.
After verifying the table, PGAdmin is showing next SQL code:

		CREATE TABLE geographicalcoverage
		(
  		  id serial NOT NULL,
  		  footprint geometry,
  		  CONSTRAINT pk_geographcoverage PRIMARY KEY (id),
  		  CONSTRAINT enforce_dims_footprint CHECK (ndims(footprint)
= 2),
  		  CONSTRAINT enforce_geotype_footprint CHECK
(geometrytype(footprint) = 'POLYGON'::text OR footprint IS NULL),
  		  CONSTRAINT enforce_srid_footprint CHECK (srid(footprint) =
4326)
		) 


So the problem is clearly the polygon does not fit the right projection when
adding by Hibernate.

Any suggestions to resolve the problem ?
What is the projection when I remove the constraints ? Or when I create a
column of type 'geometry' ?

TIA,
Jan




More information about the postgis-users mailing list