JPA: индексирование другим полем таблицы, на которую ссылается внешний ключ - PullRequest
1 голос
/ 04 февраля 2011

Я использую JPA через Play Framework с Mysql.

Допустим, у меня есть запрос JQL следующим образом:

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

Поле адреса является ссылкой на внешний ключ дляАдресная таблица.

Насколько я понимаю, этот запрос потребует сканирования таблицы всей таблицы Person, разыменования поля "address" и последующего сканирования таблицы Address.Даже если поле города в объекте Address проиндексировано, мы по-прежнему просматриваем сканирование всей таблицы Person.

Я бы хотел быстро выполнить этот запрос, каким-то образом создав индекс на p.address..city в таблице Person, возможно ли это в JPA / MySql?

1 Ответ

0 голосов
/ 04 февраля 2011

Полагаю, что если вы используете Hibernate, вы можете использовать их аннотации

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

или @Index, аннотированные в вашей колонке (размещенные в модели) из пакета org.hibernate.annotations

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...