我使用(空間)hibernate註釋爲在PostGIS上實現的空間應用程序創建模式。當從我的註釋類創建數據庫模式時,我需要創建空間索引來加速整個應用程序中使用的空間查詢。使用@Index註釋時指定索引方法
@Entity
@Table(name = "MY_CLASS")
@org.hibernate.annotations.Table(
appliesTo = "MY_CLASS", indexes = {
@Index(name = "idx_my_class_sidx",
columnNames = { "GEOM" }) })
public class MyClass {
[...]
@Column(name = "GEOM")
@Type(type = "org.hibernate.spatial.GeometryType")
private LineString geom;
[...]
}
儘管導出的模式包含索引,但不幸的是它已經使用了不希望的索引方法創建;休眠似乎默認爲btree
但是,PostGIS建議在處理空間數據時使用GIST
索引(請參閱http://postgis.net/docs/manual-2.0/using_postgis_dbmanagement.html#id441511)。
CREATE INDEX idx_my_class_sidx
ON my_class
USING btree
(geom);
雖然我可能只是回落創建與普通的SQL索引,我不知道是否有使用Hibernate的註解來覆蓋PostgreSQL的默認方法類型的方法嗎?解決方案甚至想法如何做到這一點將不勝感激。
TIA, 蒂爾曼
可能重複[如何在Hibernate中註釋PostgreSQL GIN索引](http://stackoverflow.com/questions/13243263/how-to-annotate-a-postgresql-gin-index-in-hibernate) –