2012-03-21 8 views
0

私はアプリケーションのデータベースにTemplateオブジェクトを永続化しようとしています。例外はありませんが、nullable:falseという制約が設定されているオブジェクトをnull属性で保存しようとすると、Grailsからデフォルトのメッセージが表示されます。複合キーがnullとして保存されています

クラステンプレートの

プロパティtempVersionがnullまたは(default.null.message)にすることはできません

テンプレートクラスは以下の通りである。つまり、なぜ

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値は生成されません。 null IDを生成しないでください。 とにかく、私はそれについて間違っていることを誰かが見ていますか?

ありがとうございます。

答えて

1

値のコンポジットIDを生成する場合は、カスタムシーケンスジェネレータを記述する必要があります。 Hibernateは複合IDの値を生成しません

+0

どうすればいいですか? –

関連する問題