我通过 Play Framework 使用 JPA 和 Mysql。
假设我有一个 JQL 查询,如下所示:
SELECT p FROM Person p WHERE p.address.city = 'New York'
地址字段是地址表的外键引用。
我的理解是,这个查询需要对整个 Person 表进行表扫描,“取消引用”“地址”字段,然后对 Address 表进行扫描。即使 Address 对象上的城市字段已建立索引,我们仍在查看整个 Person 表的扫描。
我想通过以某种方式在 Person 表中的 p.address.city 上创建索引来加快此查询,这在 JPA/MySql 中可能吗?
最佳答案
我相信是这样,如果你使用 Hibernate,你可以使用他们的注释
@org.hibernate.annotations.Table(
name="table_name",
indexes = { @Index(name="idx_", columnNames = { "xxx", "xx" } ) }
)
或 @Index
在来自 org.hibernate.annotations
包的列中进行注释(放置在模型中)
希望这有帮助
关于java - JPA:通过外键引用的表的另一个字段进行索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4891754/