我有一个域类DailyBooking和一个生成的Controller。在更新功能中,我叫userService.computeFlexTime(dailyBookingInstance)。在那里,我想从DailyBooking(从数据库)获取当前的持久条目:

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

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

更新方法:
if(dailyBookingInstance.end != null){
        userService.computeFlexTime(dailyBookingInstance)
    }

    dailyBookingInstance.save flush:true

另一个问题是,由于此方法未返回,为什么为什么会对我的Controller中的dailyBookingInstance产生影响?我认为在Java中,我将不得不使用ref或smth。像那样。

最佳答案

尝试getPersistentValue function

关于hibernate - Grails,GORM,更新方法在调用save()之前保留对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30376550/

10-09 04:42