2016-12-17 6 views
1

나는 Grails 2.2.1 프로젝트에 'Question'라는 도메인이 있습니다. 이 도메인 내에서 beforeinsert()는 현재 다음과 같이 :속성 값을 beforeInsert() 내에서 업데이트 할 수 없습니다.

def beforeInsert() { 
    dateCreated = new Date() 
    dateModified = new Date() 
} 

내가이 값은 컨트롤러에서 통과되지 않을 경우 그대로 허용되는 경우 dateCreated를 업데이트합니다. 여기 내 수정,하지만 불행하게도 그 작동하지 :

는에 println 인쇄 데이터가 데이터베이스에 삽입 dateCreated 값을 업데이트하더라도
def beforeInsert() { 
    dateCreated = dateCreated ? dateCreated : new Date() 
    println dateCreated 
    dateModified = new Date() 
} 

, dateCreated 필드는 현재 타임 스탬프의 값마다 시간을 가져옵니다. 어떤 도움을 주셨습니다 :)

+0

도메인의 '매핑'부분을 게시하십시오. –

+0

아직 아무것도 매핑하지 않았습니다 – towfiqpiash

답변

0

dateCreated이 자동으로 설정되는 이유는 기본 동작이 autoTimestamp이기 때문입니다. 기본적으로 도메인 클래스에 dateCreated 속성이 있으면 Grails가이 값을 설정합니다.

당신은 등이 기본 동작을 해제 할 수 있습니다

class Book { 
    … 
    static mapping = { 
     autoTimestamp false 
    } 
} 

당신은뿐만 아니라 documentation을 체크 아웃 할 수 있습니다.

+0

고마워요. 조건에 따라 autoTimestamp 값을 설정할 수있는 방법이 있습니까? 마찬가지로, 내가 수동으로 dateCreated 값을 – towfiqpiash

+0

제공 할 때만 autoTimestamp를 false로하고 싶습니다'beforeInsert' 코드를 사용하여'autoTimestamp'를 사용하지 않으려 고 시도 했습니까? 그것은 당신이 원하는 것을 성취해야합니다. –

+0

문제가 해결되었습니다. 이봐, 너는 내 영웅이야. :) – towfiqpiash