mysql 8的休眠空间方言

时间:2018-12-10 21:30:20

标签: mysql hibernate spring-boot dialect

我使用springboot 2.1并为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

使用最新版本的hibernate的mysql 8的空间方向是什么?

2 个答案:

答案 0 :(得分:1)

请使用

org.hibernate.spatial.dialect.mysql.MySQL8SpatialDialect

答案 1 :(得分:1)

您应该使用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

相关问题