JPA:由外键引用的表的另一个字段索引

时间:2011-02-03 21:07:19

标签: java jpa playframework

我通过Play Framework使用JPA,使用Mysql。

假设我有一个JQL查询,如下所示:

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

地址字段是地址表的外键引用。

我的理解是这个查询需要对整个Person表进行表扫描," dereferencing" "地址"字段,然后也扫描地址表。即使Address对象上的city字段被编入索引,我们仍然会查看整个Person表的扫描。

我希望通过以某种方式在Person表中的p.address.city上创建索引来快速进行此查询,这在JPA / MySql中是否可行?

1 个答案:

答案 0 :(得分:0)

我相信如果您正在使用Hibernate,您可以使用他们的注释

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

org.hibernate.annotations在您的列(放置在模型中)注释

我希望这会有所帮助