Java 如何在spring boot中反序列化/序列化类型几何体?
我有一个属性类型为MultiPolygon和Point的实体;所以我发出了一个get请求,但返回了一个SerializationException 我研究了它,发现我必须做一些注释,创建一个配置类,并将相应的依赖项放在pom.xml中。如下所示: 实体: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
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
perimport com.livitalsolutions.jts.geom.MultiPolygon;导入com.lividsolutions.jts.geom.Point代码>非常感谢!当我放入这些代码片段时,我现在得到了一个java.io.StreamCorruptedException:invalid stream header:00000000
我进行了研究,但我没有找到任何空间类型的解决方案。宾果!除了您所说的,我还必须更改import org.geojson.MultiPolygon;导入org.geojson.Point
perimport com.livitalsolutions.jts.geom.MultiPolygon;导入com.lividsolutions.jts.geom.Point代码>非常感谢!