繁体   English   中英

JPA:通过外键引用的表的另一个字段建立索引

[英]JPA: Indexing by another field of a table referenced by a foreign key

我正在通过Play框架和Mysql使用JPA。

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

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

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

我的理解是,此查询将需要对整个Person表进行表扫描,“取消引用”“ address”字段,然后也对Address表进行扫描。 即使Address对象上的city字段已建立索引,我们仍在查看整个Person表的扫描。

我想通过某种方式在Person表的p.address.city上创建索引来使此查询快速,这在JPA / MySql中是可能的吗?

我相信,如果您使用的是Hibernate,则可以使用其注释

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

或在org.hibernate.annotations包中的列(放置在模型中)中注释的@Index

我希望这有帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM