Grails — BootStrap.groovy — проблемы с нулевым указателем

Возникли проблемы с загрузкой данных разработки BootStrap.groovy. Раньше он всегда загружал данные, но теперь перестал выдавать следующую ошибку при запуске grails run-app.

Message: Validation Error(s) occurred during save():
- Field error in object 'spotlight.content.Profile' on field 'portfolio': rejected value  [null];

Мои 2 модели следующие:

class Portfolio {
   Profile profile

String portfolioName
String portdescrip
Integer portpublished
Date dateCreated
Date lastUpdated

А ТАКЖЕ

class Profile {
   static belongsTo = [portfolio: Portfolio]

String portfoliohtml
String portfolioEmail
String portfoliocc
String portfolioAdmin
String portfolioFilestore
String portfolioColor
String bugzillaproduct
String bugzillacomponent
String rtqueue
String teamqueueemail
String etherpadurl
Integer siteupload
Date dateCreated
Date lastUpdated

В файле BootStrap.groovy у меня есть следующее:

import java.util.Date;
import spotlight.content.Profile
import spotlight.content.Portfolio

class BootStrap { 

def init = { servletContext ->

    def profile = new Profile(portfoliohtml:"No",
            portfolioEmail: "[email protected]",
            portfolioAdmin:"Ian Neilsen",
            bugzillaproduct:"bz prod name",
            bugzillacomponent:"comp name",
            siteupload:1,
            portfoliocc: "[email protected]",
            portfolioColor:"red",
            portfolioFilestore:"blah",
            rtqueue:"queue name",
            teamqueueemail:"[email protected]",
            etherpadurl:"http://url.com",
            ).save(failOnError: true)

    def portfolio = new Portfolio(portfolioName:"Portfolio 1",
                            portdescrip:"portfolio descrition field",
                            portpublished:1,
                            portfolio:profile).save(failOnError: true)

}

Я безуспешно пробовал каждое воплощение добавления объекта моего профиля в объект портфолио. Как я уже говорил ранее, это сработало и теперь перестало выдавать нулевую ошибку.

поставил меня в тупик какие-либо идеи?

ваше здоровье


person IanN    schedule 24.10.2012    source источник


Ответы (1)


Похоже, у вас несколько ошибок. Один (но не вызывающий сообщение об ошибке) заключается в том, что вы пытаетесь добавить свой экземпляр profile в свойство portfolio вашего экземпляра portfolia. Portfolio не имеет свойства portfolio.

Что касается вашего сообщения об ошибке, попробуйте следующее:

def portfolio = new Portfolio(portfolioName:"Portfolio 1", ...)
portfolio.profile = new Profile(...)
portfolio.save(failOnError: true)

Дополнительные сведения см. в разделе много-к-одному и один-к-одному ( GORM) документации по Grails.

person aiolos    schedule 24.10.2012
comment
о человек большое спасибо. Поздний день, и ты только что остановил меня, чтобы я не билась головой о стол. Я до сих пор не понимаю, почему это работало раньше. Я изменил профиль модели из профиля сайта через приложение, и с тех пор он решил исчезнуть с лица земли. Все еще изучаю Грааль. Спасибо друг - person IanN; 24.10.2012