jonny81 wrote in ru_grails

Category:

domain, mapping

Пытаюсь разобраться с моделями и БД. Таблицы создаются автоматически на основе класса модели. Использую MySql/InnoDB. 

Помогите с решением вопросов:

1) Что нужно указать в классе, чтобы создавалось поле INT(10) UNSIGNED? Т.е. хочу сделать беззнаковое поле.

2) Хочу сделать поле типа LONGBLOB. Модель следующая:
class MailAttachment
{
Byte[] file;

static constraints = {
file(maxSize: 16777216);
}

}
Grails упорно создает в базе данных поле file типа TINYBLOB. Значения maxSize пробывал вплоть до 2^31.

3) Хочу указать модели, что бы использовалось каскадное удаление. Сейчас код выглядит следующим образом:
class Mail
{
static hasMany = [attachments:MailAttachment]

static mapping = {
attachments(cascade: 'all');
}
}

class MailAttachment
{
Mail mail;

static belongsTo = Mail;
}


не работает... т.е. при удалении (вручную) записи из таблицы 'mail' СУБД ругается, что имеются связанные записи в таблице mail_attachment. Ну и в phpmyadmin если связи посмотреть у таблицы mail_attachment, то на удаление там пустое значение стоит, а должно быть CASCADE...

p.s. grails 1.3.1