2012-03-21 2 views
0

Я пытаюсь сохранить объект Template в базе данных приложения. Это не дает мне никаких исключений, но я получаю сообщение по умолчанию от Grails за попытку сохранить объект с нулевым атрибутом, когда тот же отмечен с помощью ограничения на null: false.Композитный ключ сохраняется как null

Свойство tempVersion класса шаблона не может быть пустым или (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 как первичный ключ вместе с идентификатором по умолчанию, он никогда не должен генерировать нулевое значение! Точно так же, как не должно генерировать нулевой идентификатор. В любом случае, кто-нибудь видит, что я делаю неправильно?

Заранее спасибо.

ответ

1

Вы должны написать собственный генератор последовательности, если хотите сгенерировать значение foe composite ID. Hibernate не генерирует значения для составных идентификаторов

+0

Как я могу это сделать? –

Смежные вопросы