Hibernate空间索引注释

时间:2015-08-03 13:03:34

标签: java hibernate annotations spatial-index oracle-spatial

我正在使用 jts geometry 对象将我的几何对象存储为Oracle SDO_Geometry。但是,当我想使用 SDO_GEOM.RELATE 方法时,它们无法正常工作,我意识到我需要创建空间索引,但不知道如何处理冬眠即可。你知道这个问题的任何注释吗?

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

1 个答案:

答案 0 :(得分:3)

好吧,只需在存储这些几何的表上创建索引。使用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;