Java 如何在spring boot中反序列化/序列化类型几何体?

Java 如何在spring boot中反序列化/序列化类型几何体?,java,json,spring-boot,geometry,json-deserialization,Java,Json,Spring Boot,Geometry,Json Deserialization,我有一个属性类型为MultiPolygon和Point的实体;所以我发出了一个get请求,但返回了一个SerializationException 我研究了它,发现我必须做一些注释,创建一个配置类,并将相应的依赖项放在pom.xml中。如下所示: 实体: package com.zxventures.model; @Entity @Table(name = "pdv") public class PDV implements Serializable { private static fin

我有一个属性类型为MultiPolygon和Point的实体;所以我发出了一个get请求,但返回了一个SerializationException

我研究了它,发现我必须做一些注释,创建一个配置类,并将相应的依赖项放在pom.xml中。如下所示:

实体:

package com.zxventures.model;

@Entity
@Table(name = "pdv")
public class PDV implements Serializable {

private static final long serialVersionUID = 1L;

 @Column(name="coverage_area")
 @JsonSerialize(using = GeometrySerializer.class)
 @JsonDeserialize(contentUsing = GeometryDeserializer.class)
 private MultiPolygon coverageArea;

 @Column(name="address")
 @JsonSerialize(using = GeometrySerializer.class)
 @JsonDeserialize(contentUsing = GeometryDeserializer.class)
 private Point address;
}
配置类:

package com.zxventures.config;

@Configuration
public class JacksonConfig {

 @Bean
 public JtsModule jtsModule() {
  return new JtsModule();
 }
}
pom.xml:

<dependency>
<groupId>com.bedatadriven</groupId>
<artifactId>jackson-datatype-jts</artifactId>
<version>2.4</version>
</dependency>

我想我丢失了一些代码,但我无法检测到它;我想我把看到的所有代码都放在了类似的问题中。

您使用的是空间数据类型,因此需要包含以下依赖项才能工作

<dependency>
  <groupId>org.hibernate</groupId>
  <artifactId>hibernate-spatial</artifactId>
</dependency>

org.hibernate

您使用的是空间数据类型,因此需要包含以下依赖项才能工作

<dependency>
  <groupId>org.hibernate</groupId>
  <artifactId>hibernate-spatial</artifactId>
</dependency>

org.hibernate

我也遇到了同样的问题,在application.properties的下面一行添加了这个问题,然后它就可以工作了

spring.jpa.database-platform=org.hibernate.spatial.dialect.postgis.PostgisDialect

我也遇到了同样的问题,并在application.properties下面添加了一行,然后它就可以工作了

spring.jpa.database-platform=org.hibernate.spatial.dialect.postgis.PostgisDialect

异常的其余部分是什么?@roddyoffrozenpeas请求处理失败;嵌套异常为org.springframework.orm.jpa.JpaSystemException:无法反序列化;嵌套异常是org.hibernate.type.SerializationException:无法反序列化]根本原因是java.io.streamcorruptedeexception:无效的流头:00000000您似乎混淆了java序列化和JSON序列化。@chrylis不,我没有混淆;只有当我反序列化那些特定类型的字段时才会发生错误。。。当我省略它们时,它会完美地工作。。。这不是问题所在。Jackson与错误消息中的序列化类型没有任何关系。异常的其余部分是什么?@roddyoffrozenpeas请求处理失败;嵌套异常为org.springframework.orm.jpa.JpaSystemException:无法反序列化;嵌套异常是org.hibernate.type.SerializationException:无法反序列化]根本原因是java.io.streamcorruptedeexception:无效的流头:00000000您似乎混淆了java序列化和JSON序列化。@chrylis不,我没有混淆;只有当我反序列化那些特定类型的字段时才会发生错误。。。当我省略它们时,它会完美地工作。。。这不是问题。Jackson与错误消息中的序列化类型无关。当我放入这些代码片段时,我现在得到了一个
java.io.streamcorruptedeException:invalid stream header:00000000
我进行了研究,但我没有找到任何空间类型的解决方案。宾果!除了您所说的,我还必须更改
import org.geojson.MultiPolygon;导入org.geojson.Point
per
import com.livitalsolutions.jts.geom.MultiPolygon;导入com.lividsolutions.jts.geom.Point非常感谢!当我放入这些代码片段时,我现在得到了一个
java.io.StreamCorruptedException:invalid stream header:00000000
我进行了研究,但我没有找到任何空间类型的解决方案。宾果!除了您所说的,我还必须更改
import org.geojson.MultiPolygon;导入org.geojson.Point
per
import com.livitalsolutions.jts.geom.MultiPolygon;导入com.lividsolutions.jts.geom.Point非常感谢!