hibernate - 复合键另存为null

我试图将Template对象保留在应用程序的数据库中。它没有给我任何异常(exception),但是我从Grails得到了默认消息,该消息是当对象被标记为nullable:false约束时试图保存具有null属性的对象。

Property tempVersion of class Template cannot be null or (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一样。
无论如何,有人看到我对此做错了吗?

提前致谢。

最佳答案

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

https://stackoverflow.com/questions/9811274/

相关文章:

grails - Grails-多个联接在 ListView 中显示冗余数据

grails - 从环境变量将grails配置外部化为多个属性文件

grails - Grails 1.3.7如何在不进行任何缓冲的情况下直接写入输出流

jquery - 克隆一个动态创建的选择列表

grails - 将grails选择值传递给actionSubmit to Javascript方法

javascript - 如果弹出窗口被打开,则禁止刷新

grails - 哪个框架用于访问 couchDB 的门户网站?

mongodb - 在grails中,如何让transactionManager是mongoTran

unit-testing - 如何编写Grails delete()方法的测试

exception - 保存操作时出现 MissingMethodException