Составной ключ сохраняется как ноль - PullRequest
0 голосов
/ 21 марта 2012

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

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

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

1 Ответ

1 голос
/ 22 марта 2012

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

...