Индекс функций JPA, Hibernate и Oracle

1

У меня есть такая сущность

@Table(indexes = { @Index(columnList = "UPPER(name)", name="index_name") })
@Entity public class Thing {

  @Id
  @Column(name = "id")
  private Long id;

  @Column(name = "name")
  private String name;
}

и я хочу использовать функциональный индекс oracle, потому что имя в основном запрашивается как заглавное значение (но дело имеет значение при извлечении данных). Я хочу функциональный индекс oracle. Можно ли сделать это с помощью спящего режима или jpa?

В настоящее время я получаю следующую ошибку: database column 'UPPER(name)' not found (ну, я ждал ошибки с использованием только UPPER (name), но стоит попробовать)

Теги:
hibernate
jpa

1 ответ

0

Почему бы вам просто не сделать это (см. Ниже)? Hibernate автоматически преобразует имя индекса в верхний регистр, если это Oracle.

@Table
@Entity
public class Thing {

   @Id
   @Column(name = "id")
   private Long id;

   @Index(name = "index_name")
   @Column(name = "name")
   private String name;

}

Oracle будет иметь столбец с именем "NAME" и индекс на нем с именем "INDEX_NAME".

  • 0
    Дело не в названии, а в проиндексированном контенте. OP хочет индексировать результат UPPER(name) а не только name значения.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню