Получить экземпляр домена по сгенерированному идентификатору
Я использую класс Domain с сгенерированной идентичностью:
class User {
...
static mapping = {
id generator: 'assigned', name: 'uid'
}
Long uid
...
}
но когда я пытаюсь получить экземпляр с помощью
User.get(1)
он возвращает ноль. Это работает, если я использую
User.findByUid(uid)
Разве невозможно использовать Domain.get или Domain.read при создании идентификаторов?
2 ответа
Решение
Даже если ваш идентификатор назначен, нет необходимости объявлять атрибут.
class User {
static mapping = {
id generator: 'assigned' column: 'uid'
}
}
Ключевым моментом здесь является сопоставление имени столбца в базе данных.
В дополнение к ответу Серхио
generator
стратегия assigned
что означает, что приложение должно assign
идентификатор при сохранении объекта. Если вы сделали что-то подобное ниже, то вы сможете получить User.get(1)
в противном случае возникает исключение при сохранении без присвоения id
def user = new User(id: 1).save(flush: true)