【问题标题】:Grails, GORM, update method persists object before calling save()Grails,GORM,update方法在调用save()之前持久化对象
【发布时间】: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


【解决方案1】:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-27
    • 2014-08-03
    相关资源
    最近更新 更多