Проблема инициализации поля Grails GORM - PullRequest
0 голосов
/ 30 марта 2011

Итак, у меня есть отношение 1: 1:

class Number1 {
    Number2 n2
}

class Number2 {
    belongsTo = [n2: Number2]
}

Теперь я хочу инициализировать n2 в классе Number1, например:

class Number1 {
    Number2 n2 = New Number2(...).save()
}

Но Grails не работает с исключениями гибернации.Какова наилучшая практика для инициализации поля с этим отношением?

1 Ответ

1 голос
/ 31 марта 2011

Полагаю, здесь есть ошибка.Что касается состояния вашего вопроса, то Number2 должен принадлежать Number1, а не себе:

belongsTo = [n1: Number1]

Если вы определите Number2 belongsTo Number1, объект Number2 не сможет сохраниться, если у него нет связанного объекта Number1.Сначала вы должны добавить объект Number2 к какому-либо объекту Number1.

Сделайте что-то подобное в контроллере:

def a = new Number1();
def b = new Number2();

b.addToN1(a)
...

Для получения более подробной информации вы должны проверить GORM Gotchas series ,Он покажет, как избежать очень распространенных ошибок при работе с сохранением Grails.

...