Как заставить Grails использовать правильный тип столбца в MySQL для поля карты - PullRequest
1 голос
/ 04 января 2010

У меня проблема в Grails 1.1.2 + MySQL.

Мой класс домена Что-то содержит поле

Map<String, Map<Integer, Integer>> priceMap

Когда я запускаю приложение, Grails создает таблицу «что-то» и вложенную таблицу «нечто_price_map». 'thing_price_map 'содержит

BIGINT(20) price_map
VARCHAR(255) price_map_idx
TINYBLOB price_map_elt

Проблема в том, что когда я заполняю столбец priceMap даже с небольшими картографическими данными, такими как 'priceMap: [en: [100: 4, 500: 20, 600: 24]]', размер данных превышает ограничение 255 байт.

Есть ли способ указать ограничение maxSize для внутренней карты (Map), чтобы Grails использовал MEDIUMBLOB или BLOBK вместо TINYBLOB?

Кстати ... Используя in-mem DB, все работает нормально.

1 Ответ

2 голосов
/ 04 января 2010

Как вы, возможно, знаете, существует ограничение отображения для класса домена. Однако ваша проблема может быть слишком сложной для этой функции.

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

...