hibernate - 复合键另存为null

标签 hibernate grails gorm composite-key

我试图将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生成值

关于hibernate - 复合键另存为null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9811274/

相关文章:

java - 如何解决 "org.hibernate.MappingException: Unknown entity"错误?

java - 如何下载pentaho数据库模型和报告引擎?

grails - 未加载Grails网址映射布局

grails - 具有1:N关系的Grails GORM MissingMethodException

java - Hibernate xml设置映射问题

hibernate - 从第三方库映射值对象

grails - 对空关联使用Grails GORM标准

grails - Grails:尝试使用嵌套对象保存对象。没有错误但没有ID

hibernate - 使用持久引用保留对象时,使用JPA遇到数据库死锁

plugins - 从stark-security升级到Spring Security插件