2011-02-03 32 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

相关问题