调试Bootstrap.groovy的最佳方法是什么?

时间:2011-03-18 16:58:27

标签: grails bootstrapping

我正在将一些数据插入到数据库中,但是即使我看不到任何验证错误,也会插入一些对象。使用stacktrace或使用sql进行错误的最佳方法是什么,以便我可以找出问题所在?

例如我做的,新的XXXXX(属性:“blah”)。save(flush:true)

我没有在启动时看到错误(grails run-app),但我也看不到我的数据。我确实看到了许多对象的数据,所以我确定它是关于我的对象,验证甚至关联的东西,但我需要一种简单的方法来在日志/控制台中查看问题......

我确信这很容易,但是... ...

2 个答案:

答案 0 :(得分:5)

我建议让save()在引导期间失败时抛出异常,因为验证错误将由您的代码引起,而不是用户输入。

new Xxxxx(property: "blah").save(failOnError: true)

该异常将包含一个非常冗长的文本块,但请检查第一行,如下所示:

  

grails.validation.ValidationException:   验证错误发生在   save():

     

对象中的字段错误   字段上的'mypackage.Xxxxx'   'myProperty':拒绝值[null]

答案 1 :(得分:1)

首先和formost,我会围绕你的域写一个单元测试。如果这似乎有效,但你仍然在Bootstrap中遇到问题,那么对于每次保存,我都会检查域是否有错误..

def xxxxx = new XXXXX(...)
xxxxx.save(flush:true)
def errors = xxxxx.errors

然后我会在那里放一个断点,这样我就可以检查错误对象了。否则,您可以打印错误对象,并通常从中收集到足够的数据来确定正在发生的事情。