2017-02-28 15 views
9

के लिए अनदेखा किया जा रहा मैं प्रकार MySql डेटाबेस से "सूत्री" के कॉलम को पढ़ने में सक्षम होना चाहता हूँ,AttributeConverter com.vividsolutions.jts.geom.Point

मैं उसके लिए एक AttributeConverter लिखना चाहते थे, तो मैं द्वारा शुरू किया डीबी से मूल्यों को प्रिंट करना, लेकिन मेरा एट्रिब्यूट कनवर्टर कभी नहीं कहा जाता है, इसलिए स्क्रीन पर कुछ भी मुद्रित नहीं होता है।

यहाँ मेरी विन्यास

spring.jpa.database=MYSQL 
spring.jpa.show-sql=false 

spring.jpa.generate-ddl=true 
spring.jpa.hibernate.ddl-auto=update 
spring.jpa.hibernate.hbm2ddl.auto=update 

spring.jpa.hibernate.naming_strategy=org.hibernate.cfg.EJB3NamingStrategy 
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl 

spring.datasource.driver-class-name=com.mysql.jdbc.Driver 
spring.datasource.url=jdbc:mysql://localhost/mydb 
spring.datasource.username=myuser 
spring.datasource.password=mypassword 
यहाँ

मेरी इकाई कोड

import javax.persistence.Column; 
import javax.persistence.Convert; 
import javax.persistence.Entity; 
import javax.persistence.GeneratedValue; 
import javax.persistence.GenerationType; 
import javax.persistence.Id; 
import javax.persistence.Index; 
import javax.persistence.Table; 

import com.dateup.models.converters.PointConverter; 
import com.vividsolutions.jts.geom.Point; 

@Entity 
@Table(
    indexes={@Index(name = "name", columnList="name")} 
) 
public class City { 
    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    public Long id; 

    public String name; 

    @Convert(converter=PointConverter.class, attributeName="location") 
    @Column(name="location", nullable=false, columnDefinition="Point") 
    public Point location; 
} 

है यह मेरा 'PointConverter'

@Converter(autoApply=false) 
public class PointConverter implements AttributeConverter<Point, byte[]> { 

    private final Logger logger = Logger.getLogger(PointConverter.class); 

    @Override 
    public byte[] convertToDatabaseColumn(Point point) { 
     logger.error("======= convertToDatabaseColumn ---- "); 
     System.out.println("convertToDatabaseColumn"); 
     System.out.println(point); 

     if (point == null) { 
      return null; 
     } else { 
      Geometry geom = (Geometry) point; 

      ByteArrayOutputStream bos = new ByteArrayOutputStream(); 
      int SRID = geom.getSRID(); 

      try { 
       byte[] buf = new byte[4]; 
       ByteOrderValues.putInt(SRID, buf, ByteOrderValues.LITTLE_ENDIAN); 
       bos.write(buf); 

       WKBWriter writer = new WKBWriter(2, ByteOrderValues.LITTLE_ENDIAN); 
       writer.write(geom, new OutputStreamOutStream(bos)); 
      } catch (IOException e) { 
       // should be impossible 
       throw new UnhandledException(e); 
      } 

      return bos.toByteArray(); 
     } 
    } 

    @Override 
    public Point convertToEntityAttribute(byte[] dbData) { 
     logger.error("======= convertToEntityAttribute ---- "); 
     System.out.println("convertToEntityAttribute"); 
     System.out.println(dbData); 

     if (dbData == null) { 
      return null; 
     } 

     try { 
      InputStream is = new ByteArrayInputStream(dbData); 
      byte[] buf = new byte[4]; 
      is.read(buf); 
      int SRID = ByteOrderValues.getInt(buf, ByteOrderValues.LITTLE_ENDIAN); 
      WKBReader reader = new WKBReader(); 
      Geometry ret = reader.read(new InputStreamInStream(is)); 
      ret.setSRID(SRID); 

      return (Point) ret; 
     } catch (ParseException e) { 
      throw new IllegalStateException(e); 
     } catch (IOException e) { 
      throw new UnhandledException(e); 
     } 
    } 
} 

मेरी pom.xml की मेरी शुरुआत है

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
<modelVersion>4.0.0</modelVersion> 

<groupId>com.myapp</groupId> 
<artifactId>myapp_data</artifactId> 
<version>0.0.1-SNAPSHOT</version> 
<packaging>jar</packaging> 

<name>myapp_data</name> 
<description>myapp data service</description> 

<parent> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-parent</artifactId> 
    <version>1.4.3.RELEASE</version> 
    <relativePath /> <!-- lookup parent from repository --> 
</parent> 

<properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 
    <java.version>1.8</java.version> 
</properties> 

<dependencies> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-data-jpa</artifactId> 
    </dependency> 

    <dependency> 
     <groupId>mysql</groupId> 
     <artifactId>mysql-connector-java</artifactId> 
     <scope>runtime</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-test</artifactId> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-web</artifactId> 
    </dependency> 

    <dependency> 
     <groupId>org.datanucleus</groupId> 
     <artifactId>javax.persistence</artifactId> 
     <version>2.1.0</version> 
    </dependency> 

    <dependency> 
     <groupId>joda-time</groupId> 
     <artifactId>joda-time</artifactId> 
     <version>2.9.4</version> 
    </dependency> 

    <dependency> 
     <groupId>org.jadira.usertype</groupId> 
     <artifactId>usertype.core</artifactId> 
     <version>5.0.0.GA</version> 
    </dependency> 

    <dependency> 
     <groupId>commons-lang</groupId> 
     <artifactId>commons-lang</artifactId> 
     <version>2.6</version> 
    </dependency> 

    <dependency> 
     <groupId>com.vividsolutions</groupId> 
     <artifactId>jts</artifactId> 
     <version>1.13</version> 
    </dependency> 

    <dependency> 
     <groupId>net.firefang</groupId> 
     <artifactId>ip2c</artifactId> 
     <version>2.0.0</version> 
     <scope>system</scope> 
     <systemPath>/Users/x/eclipse_workspace/myapp/lib/ip2c-2.0.0.jar</systemPath> 
    </dependency> 
</dependencies> 


<build> 
    <plugins> 
     <plugin> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-maven-plugin</artifactId> 
     </plugin> 
    </plugins> 
</build> 


</project> 

यह वह त्रुटि है जो मुझे मिल रही है, क्या विशेषता कनवर्टर इस त्रुटि को हल करने में मदद करनी चाहिए?

java.io.StreamCorruptedException: invalid stream header: 00000000 
    at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:806) ~[na:1.8.0_20] 
    at java.io.ObjectInputStream.<init>(ObjectInputStream.java:299) ~[na:1.8.0_20] 
    at org.hibernate.internal.util.SerializationHelper$CustomObjectInputStream.<init>(SerializationHelper.java:309) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final] 
    at org.hibernate.internal.util.SerializationHelper$CustomObjectInputStream.<init>(SerializationHelper.java:299) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final] 
    at org.hibernate.internal.util.SerializationHelper.doDeserialize(SerializationHelper.java:218) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final] 
    at org.hibernate.internal.util.SerializationHelper.deserialize(SerializationHelper.java:287) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final] 
    at org.hibernate.type.descriptor.java.SerializableTypeDescriptor.fromBytes(SerializableTypeDescriptor.java:138) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final] 
    at org.hibernate.type.descriptor.java.SerializableTypeDescriptor.wrap(SerializableTypeDescriptor.java:113) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final] 
    at org.hibernate.type.descriptor.java.SerializableTypeDescriptor.wrap(SerializableTypeDescriptor.java:27) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final] 
    at org.hibernate.type.descriptor.sql.VarbinaryTypeDescriptor$2.doExtract(VarbinaryTypeDescriptor.java:60) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final] 
    at org.hibernate.type.descriptor.sql.BasicExtractor.extract(BasicExtractor.java:47) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final] 
    at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:238) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final] 
    at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:234) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final] 
    at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:224) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final] 
    at org.hibernate.type.AbstractStandardBasicType.hydrate(AbstractStandardBasicType.java:300) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final] 
    at org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:2738) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final] 
    at org.hibernate.loader.plan.exec.process.internal.EntityReferenceInitializerImpl.loadFromResultSet(EntityReferenceInitializerImpl.java:306) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final] 
    at org.hibernate.loader.plan.exec.process.internal.EntityReferenceInitializerImpl.hydrateEntityState(EntityReferenceInitializerImpl.java:233) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final] 
    at org.hibernate.loader.plan.exec.process.internal.AbstractRowReader.readRow(AbstractRowReader.java:103) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final] 
    at org.hibernate.loader.plan.exec.internal.EntityLoadQueryDetails$EntityLoaderRowReader.readRow(EntityLoadQueryDetails.java:239) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final] 
    at org.hibernate.loader.plan.exec.process.internal.ResultSetProcessorImpl.extractResults(ResultSetProcessorImpl.java:122) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final] 
    at org.hibernate.loader.plan.exec.internal.AbstractLoadPlanBasedLoader.executeLoad(AbstractLoadPlanBasedLoader.java:122) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final] 
    at org.hibernate.loader.plan.exec.internal.AbstractLoadPlanBasedLoader.executeLoad(AbstractLoadPlanBasedLoader.java:86) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final] 
    at org.hibernate.loader.entity.plan.AbstractLoadPlanBasedEntityLoader.load(AbstractLoadPlanBasedEntityLoader.java:167) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final] 
    at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3967) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final] 
    at org.hibernate.event.internal.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:508) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final] 
    at org.hibernate.event.internal.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:478) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final] 
    at org.hibernate.event.internal.DefaultLoadEventListener.load(DefaultLoadEventListener.java:219) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final] 
    at org.hibernate.event.internal.DefaultLoadEventListener.doOnLoad(DefaultLoadEventListener.java:116) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final] 
    at org.hibernate.event.internal.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:89) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final] 
    at org.hibernate.internal.SessionImpl.fireLoad(SessionImpl.java:1129) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final] 
    at org.hibernate.internal.SessionImpl.immediateLoad(SessionImpl.java:997) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final] 
    at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:157) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final] 
    at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:266) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final] 
    at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:73) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final] 
    at com.dateup.models.City_$$_jvsted8_2.toString(City_$$_jvsted8_2.java) ~[classes/:na] 
    at java.lang.String.valueOf(String.java:2981) ~[na:1.8.0_20] 
    at java.lang.StringBuilder.append(StringBuilder.java:131) ~[na:1.8.0_20] 
    at com.dateup.repositories.SearchService.searchForUsers(SearchService.java:150) ~[classes/:na] 
    at com.dateup.repositories.SearchService.search(SearchService.java:105) ~[classes/:na] 
    at com.dateup.controllers.SearchController.search(SearchController.java:37) ~[classes/:na] 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_20] 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_20] 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_20] 
    at java.lang.reflect.Method.invoke(Method.java:483) ~[na:1.8.0_20] 
    at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) ~[spring-web-4.3.6.RELEASE.jar:4.3.6.RELEASE] 
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133) ~[spring-web-4.3.6.RELEASE.jar:4.3.6.RELEASE] 
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:116) ~[spring-webmvc-4.3.6.RELEASE.jar:4.3.6.RELEASE] 
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827) ~[spring-webmvc-4.3.6.RELEASE.jar:4.3.6.RELEASE] 
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738) ~[spring-webmvc-4.3.6.RELEASE.jar:4.3.6.RELEASE] 
    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) ~[spring-webmvc-4.3.6.RELEASE.jar:4.3.6.RELEASE] 
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963) ~[spring-webmvc-4.3.6.RELEASE.jar:4.3.6.RELEASE] 
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897) ~[spring-webmvc-4.3.6.RELEASE.jar:4.3.6.RELEASE] 
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) ~[spring-webmvc-4.3.6.RELEASE.jar:4.3.6.RELEASE] 
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861) ~[spring-webmvc-4.3.6.RELEASE.jar:4.3.6.RELEASE] 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:622) ~[tomcat-embed-core-8.5.11.jar:8.5.11] 
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) ~[spring-webmvc-4.3.6.RELEASE.jar:4.3.6.RELEASE] 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) ~[tomcat-embed-core-8.5.11.jar:8.5.11] 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230) ~[tomcat-embed-core-8.5.11.jar:8.5.11] 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) ~[tomcat-embed-core-8.5.11.jar:8.5.11] 
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) ~[tomcat-embed-websocket-8.5.11.jar:8.5.11] 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) ~[tomcat-embed-core-8.5.11.jar:8.5.11] 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) ~[tomcat-embed-core-8.5.11.jar:8.5.11] 
    at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99) ~[spring-web-4.3.6.RELEASE.jar:4.3.6.RELEASE] 
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.6.RELEASE.jar:4.3.6.RELEASE] 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) ~[tomcat-embed-core-8.5.11.jar:8.5.11] 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) ~[tomcat-embed-core-8.5.11.jar:8.5.11] 
    at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:105) ~[spring-web-4.3.6.RELEASE.jar:4.3.6.RELEASE] 
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.6.RELEASE.jar:4.3.6.RELEASE] 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) ~[tomcat-embed-core-8.5.11.jar:8.5.11] 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) ~[tomcat-embed-core-8.5.11.jar:8.5.11] 
    at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81) ~[spring-web-4.3.6.RELEASE.jar:4.3.6.RELEASE] 
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.6.RELEASE.jar:4.3.6.RELEASE] 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) ~[tomcat-embed-core-8.5.11.jar:8.5.11] 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) ~[tomcat-embed-core-8.5.11.jar:8.5.11] 
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197) ~[spring-web-4.3.6.RELEASE.jar:4.3.6.RELEASE] 
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.6.RELEASE.jar:4.3.6.RELEASE] 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) ~[tomcat-embed-core-8.5.11.jar:8.5.11] 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) ~[tomcat-embed-core-8.5.11.jar:8.5.11] 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198) ~[tomcat-embed-core-8.5.11.jar:8.5.11] 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) [tomcat-embed-core-8.5.11.jar:8.5.11] 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:474) [tomcat-embed-core-8.5.11.jar:8.5.11] 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) [tomcat-embed-core-8.5.11.jar:8.5.11] 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) [tomcat-embed-core-8.5.11.jar:8.5.11] 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) [tomcat-embed-core-8.5.11.jar:8.5.11] 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349) [tomcat-embed-core-8.5.11.jar:8.5.11] 
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:783) [tomcat-embed-core-8.5.11.jar:8.5.11] 
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) [tomcat-embed-core-8.5.11.jar:8.5.11] 
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:798) [tomcat-embed-core-8.5.11.jar:8.5.11] 
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1434) [tomcat-embed-core-8.5.11.jar:8.5.11] 
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-8.5.11.jar:8.5.11] 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_20] 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_20] 
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-8.5.11.jar:8.5.11] 
    at java.lang.Thread.run(Thread.java:745) [na:1.8.0_20] 

भी इस क्वेरी का उपयोग

SELECT AsText(location) FROM City limit 2; 

रिटर्न

   AsText(location) 
--------------------------------------------- 
'POINT(1.4873600006103516 42.55329895019531)' 
'POINT(1.5739200115203857 42.53219985961914)' 

और निश्चित रूप से

SELECT count(*) FROM City WHERE location IS NULL; 

रिटर्न

मेरी DB में डेटा की जांच
count(*) 
-------- 
0 

तो मेरे डेटा मान्य


सेटिंग्स

@TypeDefs({ 
     @TypeDef(name="point", typeClass=GeometryUserType.class) 
}) 

और

@Column(name="location", nullable=false, columnDefinition="Point") 
@Convert(converter=PointConverter.class, attributeName="location") 
@Type(type="point") 
public Point location; 

को अद्यतन करने के सवाल और एक

का उपयोग कर रहा है
public class GeometryUserType implements EnhancedUserType { 
.... 
public Object nullSafeGet(...){ 
       InputStream is = rs.getBinaryStream(names[0]); 
      if (is == null) 
       return null; 
      byte[] buf = new byte[4]; 
      is.read(buf); 
      int SRID = ByteOrderValues.getInt(buf, ByteOrderValues.LITTLE_ENDIAN); 
      WKBReader reader = new WKBReader(); 
      Geometry ret = reader.read(new InputStreamInStream(is)); 
      ret.setSRID(SRID); 
      return ret; 
} 

मुझे लगता है कि बिंदु GeometryUserType में परिवर्तित किया गया है। nullSafeGet विधि, लेकिन मेरे मॉडल में मान शून्य है ....

क्यों @TypeDef आंशिक रूप से काम कर रहा है और विशेषता कनवर्टर नहीं है। मुझे क्या याद आ रहा है

क्या कोई मेरी मदद कर सकता है !! धन्यवाद

+0

क्या आप अपना pom.xml हाइबरनेट/जेपीए निर्भरताओं के साथ जोड़ सकते हैं? –

+0

ने अभी अपना प्रश्न संपादित किया है, धन्यवाद –

+0

कनवर्टर और कनवर्ट एनोटेशन .. पैकेज से वे हैं? –

उत्तर

1

मैंने @approciblue के रूप में किया था, मैंने 'बेनिज़्रा' प्रतिक्रिया http://techqa.info/programming/question/39147145/spring-data-jpa-and-geometry-type (जो बहुत मदद की) पर देखा।

मदद मेरी समझने के लिए जब

<dependency> 
    <groupId>org.hibernate</groupId> 
    <artifactId>hibernate-spatial</artifactId> 
    <version>5.2.5.Final</version> 
</dependency> 

लोड हो रहा है बोली वर्ग कैसे स्थान वस्तु के साथ काम करने के लिए पता चल जाएगा कि प्रदान करेगा, सब करने के लिए छोड़ दिया application.properties

में उन लोगों के नए वर्गों कॉन्फ़िगर करने के लिए है
spring.jpa.properties.hibernate.dialect=org.hibernate.spatial.dialect.mysql.MySQL5InnoDBSpatialDialect 

तो अब यह मेरा शहर वर्ग है

@Entity 
public class City {  
    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    public Long id; 

    @JsonIgnore 
    @ManyToOne(fetch = FetchType.LAZY) 
    public State state; 

    public String name; 
    public String accentName; 

    @Column(name = "location", columnDefinition = "POINT") 
    public Point location; 
} 

धन्यवाद