web-dev-qa-db-ja.com

GEOMETRYフィールドに送信したデータからジオメトリオブジェクトを取得できません

次の簡単なテストはエラーを返します

CREATE TABLE track (
  position point NOT NULL
);
INSERT INTO track VALUES (
  position=ST_PointFromText('POINT(-45.62390335574153 -3.9551761173743847)')
);

エラー:

エラー1416(22003):GEOMETRYフィールドに送信したデータからジオメトリオブジェクトを取得できません

何が悪いのですか?

2
Aubin

間違った構文...代わりに

INSERT INTO track VALUES (
    position=ST_PointFromText(...)
);

使用する

INSERT INTO track SET
    position=ST_PointFromText(...);

リファレンス: https://dev.mysql.com/doc/refman/5.7/en/insert.html

4
Rick James

Spring Boot data JPAとMySQLを使用しています。

春のブートapplication.propertiesに以下のプロパティを追加してください

spring.jpa.properties.hibernate.dialect = org.hibernate.spatial.dialect.mysql.MySQL5InnoDBSpatialDialect
spring.jpa.database-platform = org.hibernate.spatial.dialect.mysql.MySQL5InnoDBSpatialDialect

ポイント列の保存に成功しました

Hibernate: select max(id) from shoplocation
Hibernate: insert into shoplocation (address, area, geo_location, id) values (?, ?, ?, ?)

Spring Boot 1.5.9、Hibernate 5.2、MySQL 5.6を使用しています

1
Sumit Pahwa