Спящий пространственный диалект для MySQL 8

Я использую Springboot 2.1 и последнюю версию Hibernate для orm. когда я хочу сохранить свои данные в БД, у меня возникает эта ошибка:

Усечение данных: невозможно получить объект геометрии из данных, которые вы отправляете в поле GEOMETRY.

@Data
@Entity
@EntityListeners(AuditingEntityListener.class)
public class Province {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    Long Id;

    String name;

    @Column(nullable = false, columnDefinition = "MultiPolygon")
    MultiPolygon multiPolygon;

}

Я думаю, проблема в моем диалекте.

server:
port: 8080

logging:
    level:
        com.mousavi007.serverhavadan: debug
spring:
  mail:
    host: smtp.gmail.com
    port: 587
    username:********
    password: ******
    properties:
      mail:
            smtp:
              auth: true
              starttls:
                enable: true
    protocol: smtp
    default-encoding: utf-8

  datasource:
    url: jdbc:mysql://localhost:3306/havadan
    username: *************
    password: *************
    platform: mysql
  jpa:
    hibernate:
      ddl-auto: update
    database-platform: org.hibernate.dialect.MySQL8Dialect

    database: mysql
    show-sql: true

что такое пространственный дилект для mysql 8 с последней версией hibernate?


person Mehdi Mousavi    schedule 10.12.2018    source источник


Ответы (2)


Пожалуйста, используйте

org.hibernate.spatial.dialect.mysql.MySQL8SpatialDialect

person 3ndelebu    schedule 01.06.2020

Вы должны использовать org.hibernate.spatial.dialect.mysql.MySQL8SpatialDialect и использовать правильные типы геометрии (в данном случае org.locationtech.jts.geom.MultiPolygon). @Column аннотация над полем MultiPolygon необязательна.

Подробнее: https://docs.jboss.org/hibernate/orm/5.4/userguide/html_single/Hibernate_User_Guide.html#spatial

person ForExample    schedule 31.07.2020