0
我有一個動作修改和實例,然後鏈接到另一個動作。如果實例上有錯誤,我想忽略所做的更改。但是,discard()方法不起作用。狀態更改始終保持不變。我究竟做錯了什麼?grails hiberate discard()被忽略
def reject={
def notice=Notice.get(params['id']);
if(!notice){
flash.message="Could Not Find Notice With ID:"+params.id;
redirect(action:'list');
return;
}
flash.messages=[:];
flash.errors=[:];
notice.status=NoticeType.REJECTED;
if(!notice.hasErrors() && notice.save(flush:true)){
//success message
flash.messages.notice_tab=["Notice Was Successfully Flagged As Rejected"];
}
}
else{
//error message
flash.errors.notice_tab=[];
notice.errors.allErrors.each{
flash.errors.notice_tab.push(it);
}
notice.discard(); //THIS DOES NOTHING????
}
chain(action:'edit', id:params['id'])
return;
}
我也試過notice.refresh()來設置值返回到原來的。沒關係。依然堅持我設定的新價值。我改變了鏈條重定向,發生了同樣的事情。