java - 如何在 Spring Boot 中反序列化/序列化类型 Geometry?

标签 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 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>

发生异常:

could not deserialize; nested exception is 
org.hibernate.type.SerializationException: could not deserialize

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

最佳答案

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

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

关于java - 如何在 Spring Boot 中反序列化/序列化类型 Geometry?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56861600/

相关文章:

java - 有什么方法可以知道 Locale 上的国家/地区默认使用的语言吗?

java - 加载 .mtl 和 .obj 文件时使用 min3d 解析错误

json - 如何忽略 jq 中损坏的 JSON 行?

javascript - FullCalendar 调度程序更新资源 JSON 对象

spring - JobLauncherTestUtils 在尝试测试 spring 批处理步骤时抛出 NoUniqueBeanDefinitionException

java - Spring转换器不转换自定义实体

java - 如何将 --illegal-access JVM 参数传递给 spring boot maven 插件

java - JPanel位置问题

c# - System.Text.Json 从 API 调用反序列化嵌套对象 - 数据包装在父 JSON 属性中

java - Spring 启动: Prevent double encoding of % by Resttemplate