我正在尝试在应用程序的数据库中保留一个Template对象。它没有给我任何例外,但我从Grails获取默认消息,试图保存具有null属性的对象,当标记为nullable:false约束时。
类Template的属性tempVersion不能为null或(default.null.message)
Template类如下:
class Template implements Serializable {
Long tempVersion
String name
Type type
Status status
App app
String body
Tester tester
Date date
static constraints = {
name blank:false, maxSize:50
type nullable:false
status nullable:false
app nullable:false
body blank:false, widget:"textarea"
}
static mapping = {
id composite:['id','tempVersion']
tempVersion generator:"sequence", params:[sequence:'SEQ_TEMPLATE_VERSION']
body type:"text"
version false
}
我无法理解为什么会这样,因为如果我将tempVersion指定为主键以及默认的'id',它应该永远不会生成空值!就像不应该生成null id一样。 无论如何,有人看到我做错了吗?
提前致谢。
答案 0 :(得分:1)
如果要为复合ID生成值,则必须编写自定义序列生成器。 Hibernate不会为复合ID生成值