2017-07-24 103 views
-2

当我在grails中写入.save()时,它会在db表中插入一个新行。但是,不要在对象中保存数据。 我用.save(flush:true)尝试过,但没有运气。 请帮忙。Grails .save()不起作用

感谢

+0

什么的Grails的版本?并且,您是否尝试过.validate()和.hasErrors()以确保您的所有数据都是有效的? – Daniel

+0

版本是2.5.1。是的,我尝试使用.valiadte()和.hasErrors()。 –

+0

如果您认为您可以排除您未能捕捉到的验证错误,还请提供代码以备份此错误。 – cfrick

回答

1

尝试save(failOnError:true)或检查的save()返回值 - 这是成功/失败在Groovy的真相。

您还可以添加logSql: true您application.yml数据源和

logger 'org.hibernate.type.descriptor.sql.BasicBinder', TRACE, ['STDOUT'] 
logger 'org.hibernate.SQL', TRACE, ['STDOUT'] 

您logback.groovy

+0

save(failOnError:true)也不起作用。 –

+1

@AbhisekPattnaik whas确实“不正常”?你会得到一个异常?那么,宾果,这是它不保存的原因。 – cfrick

1

大概要保存未通过验证的对象。意思是不符合领域类中描述的最小约束。

调试您的代码并运行验证的方法,然后查看错误属性。

object.validate() 
object.errors 

看看 https://docs.grails.org/latest/ref/Constraints/Usage.html

记住的约束关闭所有未声明的属性,是强制性的默认保存对象