도메인 객체를 저장하지 못할 때 기본적으로 o.errors.allerrors.each {println it}

StackOverflow https://stackoverflow.com/questions/611282

문제

Grails/Gorm을 사용하여 도메인 객체를 지속시킬 때 Save () 호출이 왜 실패하는지 궁금해합니다.

이것은 논리를 추가하여 쉽게 해결할 수 있습니다.

if (!o.save()) {
    o.errors.allErrors.each { println it }
}

그러나 어디에서나 추가하면 .save ()를 수행하면 많은 중복 코드가 추가됩니다. 건식의 정신으로 Grails/Gorm을 구성하여 STDERR (Save-Orrors)에 자동으로 인쇄하고 싶습니다. 그게 가능합니까? 그렇지 않다면, Gorm을 어떻게 확장하여 가능하게합니까?

도움이 되었습니까?

해결책

해결책:

Object.metaClass.s = {
    def o = delegate.save()
    if (!o) {
        delegate.errors.allErrors.each {
            println it
        }
    }
    o
}

여기에는 save ()을 호출하고 오류를 인쇄하는 s ()라는 메소드가 추가됩니다.

다른 팁

이것은 가장 깨끗한 외모가 아니며 아마도 더 나은, 그루비어 이것을하는 방법. 보고에 따라 여기 확장하고 사용할 수있는이 코드를 구성했습니다.

class Book {
   void printTitle(){ println "The Title" }
}

Book.metaClass.customPrintTitle << {-> 
    println "changin ur class"
    printTitle()
}

def b = new Book()

b.customPrintTitle()
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top