6

在我的 Grails 域类中,我想设置保留在数据库中的默认值。我使用mysql作为数据库。我试图这样做:

class A {

   long someValue = 1
   long someOtherValue
   boolean someBool = true
   boolean someOtherBool

   static mapping = {
      someOtherValue defaultValue: 1
      someOtherBool defaultValue: true  
   }
}

但没有任何效果。数据库中没有设置默认值。我必须更改什么才能正确设置默认值?

4

3 回答 3

6

如果您在上面的 Grails 2.2 上,那么您可以使用 defaultValue。在此处查看 Burt 的答案 尝试一下,希望这会有所帮助:

Class A {
      Long someValue 
      Long someOtherValue

      Boolean someBool
      Boolean someOtherBool

     static mapping = {
        someOtherValue defaultValue: 1
        someOtherBool  defaultValue: true  
        ...
     } 

}
于 2013-05-12T11:16:05.340 回答
2

我发现要让 defaultValue 与 String 属性一起使用,我需要在单引号周围加上双引号,而要让 defaultValue 为数字属性工作,我需要在数字周围加上双引号,否则默认值不会出现在 DDL 中。因此,例如:

static mapping = {
   myStringProperty defaultValue: "'Cash'"
   myIntProperty defaultValue: "0"
}

此外,据我所知,默认值不适用于枚举属性。

于 2013-07-12T20:07:56.127 回答
2
class A {

   long someValue
   long someOtherValue
   boolean someBool = Boolean.TRUE
   boolean someOtherBool = Boolean.TRUE

   static mapping = {
      someValue defaultValue: '1'
      someOtherValue defaultValue: '1'
   }
}

这将起作用,在 2.2.3 中进行了测试。

于 2014-01-09T21:33:21.953 回答