Добавление индекса вводит Домен Grails

Я попробовал после этой ссылки, и это - теперь код моего домена:

class SnbrActVector {

    long nid
    String term
    double weight

    static mapping = {
        version false
        nid index:'Nid_Idx'
    }

    static constraints = {
        term(blank:false)
    }
}

То, что я хочу, должно сделать, должен добавить индексный ключ для nid столбец. Я отбросил существующую таблицу и запустил приложение снова, таким образом, таблица затем воссоздается. Однако, когда я проверяю на список индексов, я не вижу Nid_Idx, только PRIMARY. Сделайте я должен вручную создать индекс и назвать его Nid_idx в моей mysql базе данных?

7
задан cdeszaq 10 December 2012 в 14:54
поделиться

2 ответа

Ваш синтаксис правильный, поэтому это может быть другая проблема или ошибка Grails. Мой совет:

  1. Создайте новое приложение grails ( grails create-app ) с помощью SnbrActVector как единственный домен ( grails create-domain ... ). Скопируйте свой код внутрь.
  2. Убедитесь, что в вашем файле DataSource.groovy есть dbCreate = "create-drop"
  3. Проверьте индексы таблицы SnbrActVector .

Если вы видите индекс, созданный для столбца nid , это означает, что в вашем приложении есть проблема (вы, возможно, не использовали «create-drop» или что-то еще)

Если индекс НЕ создается => Это ошибка grails, и вам следует открыть здесь проблему JIRA

1
ответ дан 7 December 2019 в 09:58
поделиться

Возможно, вам придется добавить имя столбца, чтобы он сработал, например,

static mapping = {
        version false
        nid column:'nid', index:'Nid_Idx'
    }
0
ответ дан 7 December 2019 в 09:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: