Grails “riferimenti di proprietà non-null un valore nullo o transitoria” di eccezione sul flusso web
-
20-09-2019 - |
Domanda
sto ottenendo "org.springframework.dao.DataIntegrityViolationException: not-null proprietà fa riferimento a un valore nullo o transitoria: a.b" eccezione sul flusso web in Grails 1.1.2. v'è
class B {
...
static belongsTo = [a:A]
...
}
e
class A {
...
static hasMany = [b:B]
...
}
Qualcuno sa che cosa è sbagliato? Grazie Tom
Soluzione
risolto.
C'è stato un problema diverso. Non stavo persistente nulla. Sono comparsi alcuni incongruenze tra i dati serializzati nel flusso e persistette dati nel database. Quindi una query di selezione causato questa eccezione.
Altri suggerimenti
Questa è veramente andando a dipendere più su ciò che i parametri sono e come si sta movimentazione creazione o il mantenimento degli oggetti Gorm, non il grafico oggetto reale.
Sono d'accordo con @ John. Una delle soluzioni più comuni è, si dovrebbe salvare l'oggetto come
a.addToB(b)
a.save()
Speranza che aiuta.
Il problema è legato alla ORM (immagino che si sta utilizzando in letargo sotto). Il problema sarà risolto se si configura la proprietà a cascata degli attributi mappati.
Non so come configurarlo in Grails, ma questo documento di Hibernate dovrebbe aiutare a capire dove sia il problema: http://docs.jboss.org/hibernate/stable/entitymanager/reference/en/html/objectstate.html#objectstate-transitive