【发布时间】:2015-05-21 14:21:55
【问题描述】:
我有一个域类DailyBooking 和一个生成的控制器。在更新函数中,我调用了userService.computeFlexTime(dailyBookingInstance)。我想从 DailyBooking (从数据库中)获取当前持久化的条目:
DailyBooking currentEntry = DailyBooking.findByUserAndDate(dailyBookingInstance.user, dailyBookingInstance.date)
据我了解,我应该从数据库中获取当前持久化的条目,因为我在更新函数中的保存语句之前调用了服务。但是当我实际调试时, currentEntry 具有来自更新对象的值。此外,新值已写入数据库,无需调用 save。
更新方法:
if(dailyBookingInstance.end != null){
userService.computeFlexTime(dailyBookingInstance)
}
dailyBookingInstance.save flush:true
另一个问题是为什么这个方法对我的控制器中的 dailyBookingInstance 有影响,因为它没有返回?我认为在 Java 中我必须使用 ref 或 smth。像这样。
【问题讨论】:
-
在事务服务中,从数据库中检索(或新创建并保存)的对象在方法执行后会自动持久化。
-
我可以改变它吗?我需要在 currentEntry 中包含更新前的值的对象。
标签: hibernate grails grails-orm