Использование назначенного идентификатора для объекта домена в Grails 2.0 - PullRequest
0 голосов
/ 22 марта 2012

Мы используем Grails с устаревшей базой данных, и нам нужно контролировать, как идентификаторы присваиваются объектам домена.

Мы попытались:

id column: "sco_id", generator:'assigned'

, но получили исключение:

Пакетное обновление вернуло неожиданное количество строк из обновления [0];фактическое количество строк: 0;ожидается: 1

мы также попытались создать собственный генератор идентификаторов:

public class ScoIdGenerator implements IdentifierGenerator {

    public Serializable generate(SessionImplementor session, Object object) {

        /*Generate ID here*/

        return 8;
    }

}

Но в этом случае кажется, что генератор игнорируется, поэтому мы получаем ошибку

DEFAULT keyword cannot be used as column has no DEFAULT

Я не уверен, относятся ли эти проблемы к Grails 2.

Любая помощь приветствуется?

1 Ответ

4 голосов
/ 23 марта 2012

Проблема заключалась в том, что мы пытались настроить идентификатор с блоком столбцов

static mapping = {
    table "table_name"

    columns {
        id generator: 'assigned', column: "id_sco", sqlType: "int"
    }   
}

Вместо этого нам нужно было настроить идентификатор непосредственно внутри блока статического сопоставления

static mapping = {
    table "table_name"

    id generator: 'assigned', column: "id_sco", sqlType: "int"
    columns {
        ...
    }   
}
...