私はこの問題を抱えています:地理タイプの列でPostgisテーブルに書き込むことができ、データが正しく入力されています。それを取り戻そうとすると、java.lang.IllegalArgumentExceptionが発生します:タイプorg.postgresql.util.PGobjectのオブジェクトを変換できません
私はHibernateSpatial4.0M1、Postgis 2.0.2、Postgresql 9.1.7、Spring 3.2、Postgis-jdbc 2.0.2を使用しており、1.5.2とPostgresql-jdbc9.1-901も試しました。
これは私のクラスの関連部分です
public class Poi {
@Id
@GeneratedValue(generator="t_pois_poisid_seq")
private long poisid;
@Column(name="name")
private String name;
@Column(name="userid")
private int owner;
//@Column(columnDefinition = "Geometry", name="location")
@Type(type="org.hibernate.spatial.GeometryType")
private Point location;
public Poi(){}
public Poi(String name, int owner, String wktPoint){
this.name = name;
this.owner = owner;
WKTReader fromText = new WKTReader();
Geometry geom = null;
try{
geom = fromText.read(wktPoint);
}catch(ParseException e){
throw new RuntimeException("Not a WKT string:" + wktPoint);
}
if (!geom.getGeometryType().equals("Point")) {
throw new RuntimeException("Geometry must be a point. Got a " + geom.getGeometryType());
}
//geom.setSRID(4326);
this.location = (Point) geom;
}
}
そして、これは私が得るエラーです
java.lang.IllegalArgumentException:タイプorg.postgresql.util.PGobjectorg.hibernate.spatial.dialect.postgis.PGGeometryValueExtractor.toJTS(PGGeometryValueExtractor.java:99)org.hibernate.spatial.dialect.AbstractJTSGeometryValueExtractorのオブジェクトを変換できませんextract(AbstractJTSGeometryValueExtractor.java:42)org.hibernate.spatial.dialect.AbstractJTSGeometryValueExtractor.extract(AbstractJTSGeometryValueExtractor.java:37)org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:269)org。 nullSafeGet(AbstractStandardBasicType.java:265)org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:238)org.hibernate.type.AbstractStandardBasicType.hydrate(AbstractStandardBasicType.java:357)org。hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:2807)org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1545)org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1477)org。 hibernate.loader.Loader.getRow(Loader.java:1377)org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:644)org.hibernate.loader.Loader.doQuery(Loader.java:854)org.hibernate。 loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:293)org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:263)org.hibernate.loader.Loader.loadEntity(Loader.java:1977)org.hibernate.loader。 entity.AbstractEntityLoader.load(AbstractEntityLoader.java:82)org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:72)org。hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3821)org.hibernate.event.internal.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:458)org.hibernate.event.internal.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java: 427)org.hibernate.event.internal.DefaultLoadEventListener.load(DefaultLoadEventListener.java:204)org.hibernate.event.internal.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:260)org.hibernate.event.internal.DefaultLoadEventListener.onLoad( DefaultLoadEventListener.java:148)org.hibernate.internal.SessionImpl.fireLoad(SessionImpl.java:1075)org.hibernate.internal.SessionImpl.access $ 2000(SessionImpl.java:175)org.hibernate.internal.SessionImpl $ IdentifierLoadAccessImpl.load (SessionImpl.java:2421)org.hibernate.internal.SessionImpl.get(SessionImpl.java:971)com.prismio.pois.api.repository.HibernatePoiRepository.findOne(HibernatePoiRepository.java:30)sun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブメソッド)sun .reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)java.lang.reflect.Method.invoke(Method.java:601)org.springframework.aop.support .AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation。 .transaction.interceptor。TransactionInterceptor.invoke(TransactionInterceptor.java:110)org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)$ Proxy24.findOne (不明なソース)com.prismio.pois.api.controller.PoiController.getUser(PoiController.java:40)sun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブメソッド)sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)sun .reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)java.lang.reflect.Method.invoke(Method.java:601)org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:219)org .springframework.web.method.support。InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter。 invokeHandleMethod(RequestMappingHandlerAdapter.java:746)org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:687)org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAd java:80)org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925)org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)org.springframework.web.servlet。FrameworkServlet.processRequest(FrameworkServlet.java:915)org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:811)javax.servlet.http.HttpServlet.service(HttpServlet.java:621)org.springframework.web。 servlet.FrameworkServlet.service(FrameworkServlet.java:796)javax.servlet.http.HttpServlet.service(HttpServlet.java:728)