2011-02-25 2 views
1

User.get (1) 또는 User.findById (1)를 통해 부트 스트랩에서 객체를 가져 오려고하면 항상 null이 반환됩니다. 새 User (...)를 사용하여 객체를 저장하고 save (flush : true)하고 User.list()에 이미 있습니다 ...Get/findById가 Bootstrap에서 null을 반환합니다.

이유를 알고 계시나요?

thx

+2

저장된 사용자 개체의 ID가 1인지 확인 하시겠습니까? 'User.list()'에 의해 반환 된 사용자의 ID를 출력 해보십시오. – Dana

+0

나는 똑같은 문제를 겪고있다. 데이터베이스에 기록하고 올바른 색인에서 .get()을 수행하면 null ref 예외가 발생합니다. 그러나, Grails는 예외 후에 코드를 다시 실행하고 올바른 레코드를 검색하는 것으로 나타나며 모든 것이 잘 동작합니다. Grails 사용하기 1.3.7 – Therealstubot

답변

1

유효성 검사 오류로 인해 도메인이 저장되지 않고있는 것 같습니다. 콘솔에서 모든 유효성 검사 오류를 인쇄됩니다

user.save(flush:true) 

if (user.validate()) { 
    user.save(flush:true) 
} else { 
    user.errors.allErrors.each { println it } 
} 

에 대한

교체.

+0

사용자가'User.list()'에 나타나면 아마도 ok를 저장하고있을 것이지만 나는 save()의 것을 Grails에서 항상 검사해야한다는 Lucas에 동의한다. 어떤 사람들은 부트 스트랩에있는 어떤 것이 저장되지 않는다면 검증 예외를 던지기를 선호하는데,'user.save (failOnError : true)' – Dana

+0

답장을 보내 주셔서 감사합니다.하지만 이미 사용했습니다 (failOnError : 참된) – raoulinski

관련 문제