Как десериализовать / сериализовать Geometry типа в весенней загрузке? - PullRequest
0 голосов
/ 03 июля 2019

У меня есть сущность с атрибутами типа MultiPolygon и Point;поэтому я делаю запрос на получение, но это возвращает исключение 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

Я думаю, что мне не хватает некоторого кода, но я не могу его обнаружить;Я думаю, что я поместил весь код, который я видел в подобных вопросах.

1 Ответ

0 голосов
/ 03 июля 2019

Вы используете пространственные типы данных, поэтому необходимо включить ниже зависимость для работы

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

И соответственно измените диалект, например, org.hibernate.spatial.dialect.mysql.MySQL56InnoDBSpatialDialect

См. Пространственные типы данных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...