2012-12-02 2 views
3

Я использую ebean, он очень прост в использовании, но я не знаю, как создать свой собственный индекс.Как создать собственный индекс для ebean?

@Entity 
@Table(name="users") 
public class User { 
    public String name; 

    // how to create index for this column? 
    public long displayOrder; 
} 

Я попытался создать индекс для столбца displayOrder, но как это сделать?

Для этого нет пояснений, и сгенерированный файл ddl будет воссоздан каждый раз, поэтому я не могу добавить свои собственные инструкции ddl. И не обязательно добавлять индекс в базу данных напрямую.

Есть ли какое-нибудь простое решение?

ответ

6

Прямого ответа нет, но я думаю, что вы должны немного позаботиться об этом.

AFAIK нет возможности объявить индекс KEY через аннотации, вы можете добавить только @Column(unique=true) (если вам нужно уникальное поле).

Конечно, для первичного ключа вам просто нужно использовать аннотацию @Id.

С другой стороны, я не рекомендую использовать автоматическое создание DDL каждый раз - помните, что уничтожит всю структуру и данные БД после следующей эволюции! Вместо этого идти с этим способом:

  • подготовить как можно больше моделей, как это возможно на первом этапе, и использовать автоматический DDL, чтобы применить его к автоматической генерации БД
  • Отключить Ebean в
  • Start с использованием собственных эволюций (2. sql, 3.sql и т. д.) для добавления отсутствующих элементов - например, для примера отсутствующих индексов.
  • Никогда не поворачивайте назад. Теперь вам нужно ALTER существующих таблиц, а затем CREATE их каждый раз с нуля.
+0

Я все еще надеюсь, что будет аннотация «Индекс», чтобы упростить задачу. Спасибо за ваши предложения. – Freewind

Смежные вопросы