Grails “свойство not-null ссылается на исключение null или transient value” в веб-потоке
-
20-09-2019 - |
Вопрос
Я получаю "исключение org.springframework.dao.DataIntegrityViolationException:свойство not-null ссылается на нулевое или переходное значение:A.b" исключение в веб-потоке в grails 1.1.2.есть
class B {
...
static belongsTo = [a:A]
...
}
и
class A {
...
static hasMany = [b:B]
...
}
Кто-нибудь знает, что не так?Спасибо Том
Решение
Решаемая.
Была и другая проблема.Я ни на чем не настаивал.Появились некоторые несоответствия между сериализованными данными в потоке и сохраненными данными в базе данных.Таким образом, запрос select вызвал это исключение.
Другие советы
Это действительно будет больше всего зависеть от того, каковы ваши параметры и как вы обрабатываете создание или обслуживание объектов GORM, а не от вашего фактического графика объектов.
Согласен с @John.Одно из распространенных решений заключается в том, что вы должны сохранять объект как
a.addToB(b)
a.save()
Надеюсь, это поможет.
Эта проблема связана с ORM (я предполагаю, что вы используете hibernate ниже).Проблема будет решена, если вы настроите свойство cascade для сопоставленных атрибутов.
Я не знаю, как настроить это в grails, но этот документ hibernate должен помочь вам понять, в чем проблема: http://docs.jboss.org/hibernate/stable/entitymanager/reference/en/html/objectstate.html#objectstate-transitive