Обозначение пространственного индекса гибернации

Я использую объект jts geometry для хранения объектов геометрии как Oracle SDO_Geometry. Однако, когда я хочу использовать методы SDO_GEOM.RELATE, они не работают должным образом, я понял, что мне нужно создать пространственный индекс, но не знаю, как это сделать с спящий режим. Знаете ли вы какую-либо аннотацию к этой проблеме.

@Type(type="org.hibernate.spatial.GeometryType")
 private Geometry area;

Ответ 1

Ну, просто создайте индекс в таблице, где вы храните эти геометрии. Используйте SQL для этого.

Вам также нужно (до создания индекса) добавить надлежащие метаданные, чтобы создание индекса имело необходимую ему информацию (система координат, границы, допуск). Например, если ваши геометрии находятся в координатах WGS84:

insert into user_sdo_geom_metadata (table_name, column_name, diminfo, srid)
values (
  'US_CITIES', 
  'GEOMETRY',
  sdo_dim_array (
    sdo_dim_element('long', -180.0, 180.0, 0.5),
    sdo_dim_element('lat', -90.0, 90.0, 0.5)
  ),
  4326
);
commit;

Затем создайте индекс:

create index us_cities_sx on us_cities (geometry)
  indextype is mdsys.spatial_index;