我使用这些技术创建了一个简单的应用程序grails,netbeans和mysql。
而且我总是收到此错误消息:
我有点理解这意味着什么,所以我将重点放在id生成器键上。
这是我的利润。
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'
}
}
日期变量是我表中的主键。因此,根据我的理解,我需要指定将用作主键的列名称。问题是我仍然遇到相同的错误。我还有什么想念的,所以我可以使它起作用吗?
最佳答案
我遵循corky_bantam,使用日期作为PK很奇怪。
但是,如果是这种情况,则需要在创建Profit对象时确保设置日期
您可以尝试使用beforeInsert
:
软件包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()
}
}
}