复合键保存为null

时间:2012-03-21 19:10:40

标签: hibernate grails gorm composite-key

我正在尝试在应用程序的数据库中保留一个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一样。 无论如何,有人看到我做错了吗?

提前致谢。

1 个答案:

答案 0 :(得分:1)

如果要为复合ID生成值,则必须编写自定义序列生成器。 Hibernate不会为复合ID生成值