我试图将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/