В моем проекте гибернации добавить индексы, как так:JPA 2.1 Индекс аннотаций для столбцов с функцией
@Entity
@Table(name="MY_TABLE", indexes = {
@Index(name = "idx_user_name", columnList = "name"),
@Index(name = "idx_user_email", columnList = "email")
})
Который работает просто отлично, но что происходит, когда я хочу, чтобы сделать индекс, как это:
CREATE INDEX ON my_table (lower(name));
Если я использую следующую аннотацию я получаю AnnotationException
:
@Index(name = "idx_lower_name", columnList = "lower(name)")
Я хочу, чтобы отправить мой проект с индексами, сделанными через Hibernate + JPA 2.1. Можно ли применять функции через аннотацию Index?
Или мне нужно просто запустить SQL-скрипт при развертывании, чтобы самостоятельно добавить эти индексы через SQL?
Я мог бы просто форматировать columnList
неправильно, или может быть поле, не описанное в документации, которую мне не хватает.
Сгенерированный Javadoc будет _always_ показывать _all_ поля аннотации - даже те, у которых нет явного комментария JavaDoc. И вы попробовали '@Index (name =" idx_lower_name ", columnList =" lower (name) ")'? –
@ tobias-liefke 'AnnotationException' является следствием использования' @Index (name = "idx_lower_name", columnList = "lower (name)") ' –
Спасибо, я включил эту информацию в вопрос. –