如何使用GORM .get来检索对象o,修改一些字段,并调用o.validate()来查找错误,而无需Hibernate将对象保存到DB。丢弃本身并不妨碍保存。
也没有 clazz.withTransaction { status ->
row.validate(flush:false)
row.discard()
status.setRollbackOnly()
}
This帖子建议使用命令对象,但此代码将应用于许多不同的域对象。必须有一个简单的方法(一些参数传递给validate?)给Hibernate不要保存指令。我是否每次都需要创建一个新实例?
答案 0 :(得分:11)
如果使用read()
代替get()
来检索对象,则在刷新期间不会自动保存(例如,在事务或Web请求结束时)。它不是真正的只读,因为你可以调用save()
并且它会持续存在 - 它不会在脏的时候自动保存。