0
私はプロパティの変更方法を決定するためにgetPersistentValue()メソッドを使用しています。しかし、私は明示的にオブジェクトを保存していなくても、このメソッドが異なる値を返すことを発見しました。 はここでサービスコールは、ちょうど別の基準は、彼/彼女が日付grails getPersistentValue()保存せずに値が変更される
def driver=Drivers.createCriteria().get{
and{
eq('id',id);
eq('division',division);
le('startDate',compareDate);
or{
ge('endDate',compareDate);
isNull('endDate');
}
}
};
return service
で採用された場合は、ドライバを返すように検索され
trip.properties=[start:params.startmile,
end:params.endmile,
satusFlag:params.statusFlag,
description:params.description
];
// print statusFlag for checking
log.debug(trip.getPersistentValue('statusFlag')+":"+trip.statusFlag);
def driver=driverService.getValidDriver(params.driver,params.date);
//the persistent value of statusFlag has changed!!!!
log.debug(trip.getPersistentValue('statusFlag')+":"+trip.statusFlag);
...私はすべての方法ダウンにそれを狭くしてきたものです
何らかの理由で、サービス内のこのクエリによって、他のオブジェクトが永続的な値を更新するように強制されますか?なぜ誰かがこれを避ける方法を説明することができますか?
値を更新するために明示的に保存する必要はありません。クエリでは、どのような形式の更新も表示されませんが。おそらく、.listや.readのようなものを試してみてください。 – Vahid
http://stackoverflow.com/questions/21529503/how-to-set-default-behaviour-to-grails-criteria – Vahid