Grails、GORM、更新方法在调用 save() 之前保留对象

Grails, GORM, update method persists object before calling save()

我有一个域 Class DailyBooking 和一个生成的控制器。在更新函数中,我调用 userService.computeFlexTime(dailyBookingInstance)。在那里,我想从 DailyBooking(从数据库)获取当前持久条目:

DailyBooking currentEntry = DailyBooking.findByUserAndDate(dailyBookingInstance.user, dailyBookingInstance.date)

根据我的理解,我应该从数据库中获取当前持久条目,因为我在更新函数中的保存语句之前调用服务。但是当我实际调试时, currentEntry 具有来自更新对象的值。此外,新值已写入数据库而无需调用保存。

更新方法:

if(dailyBookingInstance.end != null){
        userService.computeFlexTime(dailyBookingInstance)
    }

    dailyBookingInstance.save flush:true

另一个问题是为什么这个方法对我的控制器中的 dailyBookingInstance 有影响,因为它没有返回?我认为在 Java 中我将不得不使用 ref 或 smth。就这样。

试试 getPersistentValue function