2011-02-03 74 views
1

我正在通過Play Framework使用JPA和Mysql。JPA:通過外鍵引用的表的另一個字段進行索引

比方說,我有一個JQL查詢,如下所示:

SELECT p FROM Person p WHERE p.address.city = 'New York' 

地址字段是一個地址表的外鍵引用。

我的理解是,這個查詢將需要整個Person表的表掃描,「取消引用」「地址」字段,然後再掃描Address表。即使Address對象上的城市字段已編入索引,我們仍然在查看整個Person表的掃描。

我想通過在Person表中的p.address.city上創建一個索引來快速完成此查詢,這可能在JPA/MySql中嗎?

+0

您是否發現溶劑? – user482745 2013-06-24 13:52:24

回答

0

我相信是這樣,如果你正在使用Hibernate可以從org.hibernate.annotations包中使用他們的標註

@org.hibernate.annotations.Table(
    name="table_name", 
    indexes = { @Index(name="idx_", columnNames = { "xxx", "xx" }) } 
    ) 

@Index在您的專欄註解(放置在模型)

我希望這有助於

+0

對,這就是你如何創建一個簡單的索引,但你如何創建一個索引到一個外表中的列? – sanity 2011-02-04 16:38:47

相關問題