我正在使用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'
}
}
日期变量是我表中的主键。根据我的理解,我需要指定我将用作主键的列名。问题是我仍然得到同样的错误。还有什么我想念,所以我能让它发挥作用?
答案 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()
}
}
}