2015-01-14 6 views
0

Мне нужен тип столбца MySQL для поля String в моем классе Domain для TEXT или VARCHAR (3000), но ничего, что я пытаюсь, кажется, работает - он остается VARCHAR (255). Я попыталсяGrails: текст вместо varchar

static mapping = { 
    longString type: 'text' 
} 

и

static mapping = { 
    longString sqlType: 'text' 
} 

и

static constraints = { 
    longString (blank: true, nullable: true, maxSize: 3000) 
} 

и

static constraints = { 
    longString (blank: true, nullable: true, size: 0..65535) 
} 

Сервер MySQL версии 5.0.95, Grails 2.4.3. Я полностью озадачен и буду признателен за любую помощь.

ответ

2

Вам нужно определить тип столбца в блоке mapping, а не constraints. Если предположить, что имя свойства является longString, добавьте этот

static mapping = { 
    longString type: 'text' 
} 

Это позволит создать столбец с типом данных MySQL из longtext.

Чтобы убедиться, что это работает, попробуйте удалить базу данных, создать новую (пустую) базу данных, перезапустить приложение и проверить тип создаваемого столбца. См. this example для справки.

+0

, но это именно тот код, который был указан в вопросе. – weide

+0

вы действительно попали в точку! Я полностью забыл о строке dbCreate = "update" в моем файле конфигурации. Я сбросил db, и теперь все работает! Handface. Возможно, вы можете отредактировать свой ответ, чтобы я мог принять его. – weide

+0

У меня было ощущение, что это происходит :) Я отредактировал свой ответ, чтобы включить информацию о проверке. –

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