Установить srid в аннотации спящего режима

Я работаю над проектом gis с весенней загрузкой 2.1, гибернацией и mysql 8.

у меня есть таблица с этой деталью

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

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

    @Column(nullable = false, columnDefinition = "point")
    Point point;

    String tittle;
    String text;

    @Column(name = "created_date", nullable = false, updatable = false)
    @CreatedDate
    @JsonIgnore
    private long createdDate;

    @Column(name = "modified_date")
    @LastModifiedDate
    @JsonIgnore
    private long modifiedDate;

    @org.springframework.data.annotation.CreatedBy
    @JsonIgnore
    Long CreatedBy;

    @LastModifiedBy
    @JsonIgnore
    Long ModifiedBy;

    @ManyToOne(fetch=FetchType.LAZY,optional = false)
    @JoinColumn(name = "city_id",nullable = false)
    @OnDelete(action = OnDeleteAction.CASCADE)
    private City city;
}

Я хочу добавить индекс для точки, но mysql предупреждает меня, что:

Пространственный индекс столбца «точка» не будет использоваться оптимизатором запросов, поскольку столбец не имеет атрибута SRID. Рассмотрите возможность добавления в столбец атрибута SRID.

как добавить атрибут srid к точке с аннотацией и как добавить пространственный индекс к точке с аннотацией.

Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
0
329
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Попробуйте с определение столбца. Протестировано с Hibernate 5.4.2 и MySQL 8.0.

@Entity
public class GeometryEntity {

  @Id
  @GeneratedValue
  private Long id;

  // only allow geometries with SRID 4326 and not null (be able to create spatial indexes)
  @Column(nullable = false, columnDefinition = "GEOMETRY SRID 4326")
  private Geometry geometry;

  private void setId(final Long id) {
    this.id = id;
  }

  public Long getId() {
    return id;
  }

  public void setGeometry(final Geometry geometry) {
    this.geometry = geometry;
  }

  public Geometry getGeometry() {
    return geometry;
  }

}

Смотрите также: https://dev.mysql.com/doc/refman/8.0/en/spatial-type-overview.html

Другие вопросы по теме