GAILS里面的SAVE方法

用途

保存一个domain类的实例到数据库,需要的话会级联保存所有的子实例。

 

举例

 

def b = new Book(title:"The Shining")
b.save()

 

描述

save方法通知持久化上下文一个实例需要被修改或被保存。这个对象不会立即被持久化到数据库,除非使用了flush参数:

 

b.save(flush:true)

如果validation失败的话,save方法返回null并且实例不被保存,如果验证成功则返回对象本身。这允许你如下使用:

 

if( !b.save() ) {
   b.errors.each {
        println it
   }
}

参数:

  • validate (可选) - 若不需要验证则设为false
  • flush (可选) - 若设为true则flush持久层,对象会马上保存到数据库
  • insert (可选) - 设为true时,会强迫Hibernate使用SQL INSERT语句,适合使用某些传统的数据库时(如AS/400),因为Hibernate不能检测到应该使用INSERT还是使用UPDATE语句
  • failOnError(可选)-设为true时,如果验证失败,save方法会抛出一个"grails.validation.ValidationException"异常,当然也可以通过在"grails-app/conf/Config.groovy"配置文件里面配置grails.gorm.failOnError参数来捕获本次异常;如果配置文件里面和方法里面都设置了参数,那么方法里面的参数会被优先起作用;更详细的配置属性和其他GORM配置选项,请参见GORM配置选项部分的用户指南。
 
 
原文地址:https://www.cnblogs.com/yinliang/p/3600494.html