我如何使用GORM .get来检索对象0,修改一些字段,并调用.validate()来查找错误,而不需要Hibernate将对象保存到DB。弃用本身不能阻止豁免。
也没有 clazz.withTransaction { status ->
row.validate(flush:false)
row.discard()
status.setRollbackOnly()
}
这篇文章建议使用命令对象,但这段代码将适用于许多不同的域对象。必须有一个简单的方法(传递一些参数来验证?)来给Hibernate不保存指令。我需要每次都创建一个新实例吗?
如果您使用read()
而不是get()
来检索对象,它将不会在刷新期间自动保存(例如在事务或web请求结束时)。它不是真正的只读,因为你可以调用save()
,它将持续存在-它只是不会在脏时自动保存。