grails - Grails的failOnError是否会强制刷新?

标签 grails groovy persistence gorm

在Grails中,如果我这样做:

domainObj.save(failOnError: true)

也会隐式刷新Hibernate的缓冲区,就像将“flush:true”添加到args一样吗?如果可以的话,请提供可靠的消息来源,谢谢。

最佳答案

根据AbstractSavePersistentMethod中的代码,验证发生在保存/刷新之前,因此,如果验证失败并且failOnError为true,则将抛出ValidationException,并且不会发生刷新

if (errors.hasErrors()) {
  handleValidationError(domainClass,target,errors);
  boolean shouldFail = shouldFail(application, domainClass);
  if (argsMap != null && argsMap.containsKey(ARGUMENT_FAIL_ON_ERROR)) {
    shouldFail = GrailsClassUtils.getBooleanFromMap(ARGUMENT_FAIL_ON_ERROR, argsMap);
  }
  if (shouldFail) {
    throw new ValidationException("Validation Error(s) occurred during save()", errors);
  }
  return null;
}
...
return performSave(target, shouldFlush); //here flush can happen

关于grails - Grails的failOnError是否会强制刷新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22394942/

相关文章:

Grails 与 Postgresql : can't create table in appropriate schema

java - 将 java 类转换为 groovy : Groovy:No expression for the array constructor call

groovy - 在 Groovy 源文件中缩进一个 heredoc

persistence - WF4 自定义持久性示例

kubernetes - 运行抢占式实例如何保存SQL存储数据?

eclipse - Groovy:规范化期间的一般错误:无法运行org.grails.compiler.injection.GlobalGrailsClassInjectorTransformation

java - Grails中拦截Spring Security获取一些请求参数

使用 Spock 进行测试时,Grails 无法将服务注入(inject)域

java - 如何使用父实体的组合键进行 JPA @OneToMany 单向映射?

java - JPA 与同一实体的两个单向@OneToMany 关系导致重复条目