2015-02-01 3 views
1

У меня есть диаграмма ER. Я пытаюсь описать его как домены grails, но после запуска проекта существует только одна часть таблиц (создана). Я не могу найти, в каком месте я совершил ошибки.Создайте домены grails из ER-диаграммы

Я использую базу данных MySQL, после запуска только song_tag стол упаковал

ERD http://imagizer.imageshack.com/img661/4805/ke6jBx.png

Моих Grails доменов

выхода
class Song { 

    static hasMany = [audios: Audio, tags: Tag] 

    BigInteger id 

    String title 
    String chorus 
    Boolean chorusRepeat 
    Date created 
    Date updated 

    static constraints = { 
     tags joinTable:[name:'song_tag', key:'song_id'] 
    } 
} 


class Tag { 

    static belongsTo = Song 
    static hasMany = [songs: Song] 

    BigInteger id 
    String name 

    static constraints = { 
     songs joinTable:[name: 'song_tag', key: 'tag_id'] 
    } 
} 

class Couplet { 

    static belongsTo = Song 

    BigInteger id 
    String text 
    Song song 

    static constraints = { 
    } 
} 

class Audio { 

    static belongsTo = Song 

    BigInteger id 

    String audio 
    String type 
    Date created 
    Date updated 
    Song song 

    static constraints = { 
    } 
} 

Консоли

2015-02-01 14:20 : 36,007 [localhost-startStop-1] ОШИБКА hbm2ddl.SchemaExport - HHH00 0389: Неудачный: создать табличный куплет (id decimal (19,2) не null auto_increment, версия bigint not null, song_id decimal (19,2) не null, текст varchar (255) не null, первичный ключ (id)) ENGINE = Ошибка InnoDB | 2015-02-01 14: 20: 36007 [локальный-стартстопный-1] ERROR hbm2ddl.SchemaExport - Некорректное столбец спецификатор для столбца 'идентификатор'

Спасибо

ответ

1

Есть две вещи, которые есть чтобы быть изменен

1)

static constraints = { 
    songs joinTable:[name: 'song_tag', key: 'tag_id'] 
} 

она должна быть в замыкании отображения, а не в ограничениях закрытия

static mapping = { songs joinTable:[name: 'song_tag', key: 'tag_id']} 

2) просто удалите поле id из домена, оно будет автоматически создано Gorm.

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