Sto utilizzando postgresql, hibernate-spatial e postgis e ci si aspetta che sia in grado di utilizzare un SqlQuery per recuperare un oggetto Geometry.hibernate-spatial: query sql per recuperare una geometria
Tuttavia ogni volta che provo ad interrogare un punto, Poligono o Geometria per esempio
List list = session.createSQLQuery(
"select geomfromewkt('SRID=1;POINT(1 1)')").list();
ottengo l'eccezione:
Caused by: org.hibernate.MappingException: No Dialect mapping for JDBC type: 1111
at org.hibernate.dialect.TypeNames.get(TypeNames.java:78)
at org.hibernate.dialect.TypeNames.get(TypeNames.java:103)
at org.hibernate.dialect.Dialect.getHibernateTypeName(Dialect.java:328)
at org.hibernate.loader.custom.CustomLoader$Metadata.getHibernateType(CustomLoader.java:590)
at org.hibernate.loader.custom.CustomLoader$ScalarResultColumnProcessor.performDiscovery(CustomLoader.java:516)
at org.hibernate.loader.custom.CustomLoader.autoDiscoverTypes(CustomLoader.java:532)
at org.hibernate.loader.Loader.getResultSet(Loader.java:1962)
at org.hibernate.loader.Loader.doQuery(Loader.java:802)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:274)
at org.hibernate.loader.Loader.doList(Loader.java:2533)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2276)
at org.hibernate.loader.Loader.list(Loader.java:2271)
at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:316)
at org.hibernate.impl.SessionImpl.listCustomQuery(SessionImpl.java:1842)
at org.hibernate.impl.AbstractSessionImpl.list(AbstractSessionImpl.java:165)
at org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:157)
hibernate.cfg.xml:
<property name="dialect">org.hibernatespatial.postgis.PostgisDialect</property>
Is questo non fa parte dell'offerta hibernate-spazial o sto facendo qualcosa di sbagliato?
Grazie, Paul.
pertinenti biblioteche/versioni:
- sospensione-core-3.6.0.Final.jar
- postgresql-9.0-801.jdbc4.jar
- sospensione-spaziale-postgis-1.1.1 .jar
- sospensione-spaziale-1.1.1.jar
- postgis-jdbc-1.3.3.jar
- jts-1.12.jar
Il DB è abilitato spazialmente e dispone dei privilegi corretti? Dal client, prova 'seleziona * da geometry_columns' –
Sì, il DB è tutto a posto. Posso recuperare le geometrie via ibernazione se utilizzo classi mappate e query di tipo non nativo-sql (criteri/hsql). – pstanton
Sono sicuro di dover applicare "org.hibernatespatial.GeometryUserType" alla colonna in qualche modo ... – pstanton