【问题标题】:Why does my service not persist a domain object?为什么我的服务不保留域对象?
【发布时间】:2013-09-02 11:59:33
【问题描述】:

我有一个服务应该保留简单的域对象。

class EventService {
    def logEventLogin(SecUser secUser) {
        Event event = new Event(secUser: secUser, eventDate: new Date());
        event.save();
    }

        ...

当我调试时,我可以看到代码到达 event.save() 但在 event.save(); 处没有任何反应我的期望是它应该被持久化。

不抛出异常。我打开了休眠日志,那里也没有。

有什么建议吗?

【问题讨论】:

  • 尝试先对其添加验证检查,并在实际保存之前确定是否有任何错误。 if(event.validate()) { event.save(flush:true) else { event.errors.allErrors.each { println it } }
  • 或者在保存时使用failOnError。
  • 你可能掉进了 save() 陷阱! =) 我建议阅读GORM Gotchas。

标签: hibernate grails


【解决方案1】:

将event.save() 调用改为:

event.save(failOnError:true, flush: true)

添加failOnError: true 将告诉您是否有任何阻止event 被持久化的验证错误。添加flush: true 将强制对象立即持久化到数据库中(而不是等待下一次Hibernate 刷新)。尝试添加这两个,看看是否可以从那里找到问题。

Here 是有关 Grails 中保存的更多信息。

【讨论】:

    猜你喜欢
    • 2012-02-28
    • 1970-01-01
    • 2021-05-09
    • 2011-06-13
    • 1970-01-01
    • 2013-02-02
    • 1970-01-01
    • 2013-04-15
    • 1970-01-01
    相关资源
    最近更新 更多