pst*_*ton 7 geometry hibernate postgis hibernate-spatial
我正在使用postgresql,hibernate-spatial和postgis,并期望能够使用SqlQuery来检索Geometry对象.
但是,每当我尝试查询点,多边形或几何时,例如
List list = session.createSQLQuery(
"select geomfromewkt('SRID=1;POINT(1 1)')").list();
Run Code Online (Sandbox Code Playgroud)
我得到了例外:
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)
Run Code Online (Sandbox Code Playgroud)
hibernate.cfg.xml中:
<property name="dialect">org.hibernatespatial.postgis.PostgisDialect</property>
Run Code Online (Sandbox Code Playgroud)
这不是hibernate-spatial产品的一部分,还是我做错了什么?
谢谢,保罗.
相关库/版本:
我已经明白了.我需要通过标量将'GeometryUserType'应用于列.
SQLQuery qry = session.createSQLQuery("select geomfromewkt('SRID=1;POINT(1 1)') as geom");
qry.addScalar("geom", GeometryUserType.TYPE);
List<Geometry> list = qry.list();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3423 次 |
| 最近记录: |