Field' id' grails中没有默认值

时间:2015-08-07 06:54:45

标签: grails

我正在使用grails,netbeans和mysql这些技术创建一个简单的应用程序。

我总是收到此错误消息:

  

Field' id'没有默认值

我理解了这意味着所以我专注于id生成器密钥。

这是我的profit.groovy

package samplegrailsapp

import java.text.DateFormat
import java.text.SimpleDateFormat
import org.grails.databinding.BindingFormat
class DailyProfit {
    @BindingFormat('yyyy-MM-dd')
    Date date;
    double profit; 
    static constraints = {

        })
    }

    static mapping = {
        version false
        id generator:'assigned', name:'date'
    }
}

日期变量是我表中的主键。根据我的理解,我需要指定我将用作主键的列名。问题是我仍然得到同样的错误。还有什么我想念,所以我能让它发挥作用?

1 个答案:

答案 0 :(得分:1)

我跟随corky_bantam说使用日期PK很奇怪。

但是,如果是这种情况,您需要确保在创建Profit对象时设置日期 您可以尝试beforeInsert

package samplegrailsapp

import java.text.DateFormat
import java.text.SimpleDateFormat
import org.grails.databinding.BindingFormat
class DailyProfit {
    @BindingFormat('yyyy-MM-dd')
    Date date = new Date();
    double profit; 
    static constraints = {

        })
    }

    static mapping = {
        version false
        id generator:'assigned', name:'date'
    }

   def beforeInsert() {
      if (date == null) {
         date = new Date()
      }
   }

}