没有Groovy.Sql的Grails Domain Class不能保存

时间:2014-05-16 13:05:16

标签: grails gorm

我正在使用Hibernate 3和Grails 2.2.5。

我的一个视图中有一个AJAX调用,它应该查找一些数据并提供文本结果。在用于生成文本结果的方法中,我有一个方法调用服务,以将文本结果保存到自己的域。

问题是.save(flush: true)不会持久存储到数据库中。但是,如果我添加一个Groovy SQL实例并执行.executeInsert()任何插入,将插入Groovy SQL中的插入并且.save(flush: true)方法将按预期工作...我已尝试过各种不同的方式,但只要我注释掉.executeInsert("...")域名类就不会被保留。

我检查了常见问题:验证检出(返回true),我将deepValidate变为false,我使用了刷新,以防Hibernate试图将插入语句保存到以后的时间。我还在logSql = true中启用了DataSource.groovy,当我对.executeInsert("...")发表评论时,SQL插入语句会被记录,但永远不会持久存在于表中。

- 编辑/ UPDATE -

Hibernate日志的insert语句为:

insert into TextDomain (version, text, ... , id) values (?,?,?,?,?)

问题标记应该在那里吗?对Hibernate不太熟悉,所以我不确定它是否正在执行它的实际SQL语句,或者它是否填充了这些值?

此外,我尝试拨打.save()的方法是src/groovy

编辑/更新 - > TEST:

我将测试设置为控制器中的单个操作。我只是调用了一个服务方法,用textDomain填充了一些测试值,然后执行了.save()。在调用控制器操作(即转到网址my-app:8080/test/text)时,textDomain会被正确保留。但是,我尝试添加具有实际textDomain实例化的服务和来自其他服务的测试值,它将不会持久...

0 个答案:

没有答案