我使用read()
检索了域对象,更改了一些属性并使用save()
明确保存了它。我可以看到版本正在更新但不是属性
应该更新属性以及grails read()
文档
示例域名:
class AdhocChargeType{
String adHocChargeType
String glCode
}
Controller test method:
class AdhocChargeTypeController
{
def testRead(Long id)
{
AdhocChargeType adHocChargeType = AdhocChargeType.read(id)
adHocChargeType.properties = [adHocChargeType:"changed?"]
adHocChargeType.save()
}
}
答案 0 :(得分:0)
Grails save()方法无声地失败。如果您有验证错误,那么它将无法保存。
尝试
save flush:true,failOnError:true
解决是否存在任何验证错误。之后数据应该存在。
答案 1 :(得分:0)
保存域实例后,Grails使用定义的约束对其进行验证。如果域实例中的值违反了这些约束,则保存将失败。问题是,这种失败是安静地发生的:如果你检查save()的返回值或者调用hasErrors(),你只知道它。
if (!adHocChargeType.save()) {
// Save failed! Present the errors to the user.
...
}
另一种方法是:
adHocChargeType.save(failOnError: true)
我建议您查看GORM最佳做法:
http://spring.io/blog/2010/06/23/gorm-gotchas-part-1/