【问题标题】:Modify and validate a grails domain object without saving it修改和验证 grails 域对象而不保存它
【发布时间】:2011-12-06 10:17:47
【问题描述】:

如何使用 GORM .get 来检索对象 o、修改一些字段并调用 o.validate() 来查找错误,而无需 Hibernate 将对象保存到数据库。丢弃本身并不会阻止保存。也没有

                clazz.withTransaction { status ->
                  row.validate(flush:false)
                  row.discard()
                  status.setRollbackOnly()
                }

This post 建议使用命令对象,但此代码将适用于许多不同的域对象。必须有一种简单的方法(传递给验证的一些参数?)给 Hibernate 不保存指令。我需要每次都创建一个新实例吗?

【问题讨论】:

    标签: grails validation domain-object


    【解决方案1】:

    如果您使用read() 而不是get() 来检索对象,它将不会在刷新期间自动保存(例如,在事务或网络请求结束时)。它不是真正的只读,因为您可以调用 save() 并且它会持续存在 - 它不会在脏时自动保存。

    【讨论】:

    • 是不是需要显式调用 o.save() 才能将对象放入刷新队列?
    • 不,任何附加到已修改会话的实例都将被刷新。您唯一需要致电 save() 的时间是针对新实例。
    猜你喜欢
    • 2011-06-27
    • 2012-06-11
    • 1970-01-01
    • 2011-05-09
    • 2015-01-06
    • 2014-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多