用途
保存一个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配置选项部分的用户指南。