【发布时间】:2010-10-25 21:34:59
【问题描述】:
我正在 Grails 1.3.5 上开发一个小型应用程序,但遇到了这个非常奇怪的问题。
我的域类具有一些布尔类型的字段。在创建新实例(当然是保存它)时,这些字段都不会保留。
比如我有这个域类“Employee”,定义如下(简化):
class Employee {
String name
boolean present
}
当我创建该类的新实例并将其持久化时,名称会被保存,但当前命名的布尔值不会。
def newEmp = new Employee(name: "me", present: true)
newEmp.save(failOnError: true, flush: true)
保存时不会抛出错误。但是,在数据库中(我使用 MySQL),二进制列“present”始终为空。
这可能是什么原因造成的?这发生在我所有的域类中。
【问题讨论】:
-
我从来没有遇到过任何问题。也许您的代码简化版本没有向我们展示可能导致错误的原因。你能发布一个更大的sn-p代码吗?您的字段实际上是否命名为
present?或者它可能是mysql中的保留字? -
另外,当你将字段设为
Boolean(而不是原始的boolean)时会发生什么?这会改变行为吗?
标签: grails groovy boolean grails-orm