Как заставить Grails использовать правильный тип столбца в MySQL для поля карты
У меня проблема в Grails 1.1.2 + MySQL.
Мой класс домена Что-то содержит поле
Map<String, Map<Integer, Integer>> priceMap
Когда я запускаю приложение, Grails создает таблицу "что-то" и вложенную таблицу "нечто_price_map". "что-то_карта" содержит
BIGINT(20) price_map
VARCHAR(255) price_map_idx
TINYBLOB price_map_elt
Проблема заключается в том, что когда я заполняю столбец priceMap даже с небольшими данными карты, такими как "priceMap:[en:[100:4, 500:20, 600:24]]", размер данных превышает предел 255bytes.
Есть ли способ указать ограничение maxSize для внутренней карты (Map), чтобы Grails использовал MEDIUMBLOB или BLOBK вместо TINYBLOB?
Кстати... Используя in-mem DB, все работает нормально.
1 ответ
Как вы, возможно, знаете, существует ограничение отображения для класса домена. Однако ваша проблема может быть слишком сложной для этой функции.
В таких случаях вы можете указать явное отображение Hibernate (через файл hbm) для класса домена. Это обеспечивает полную гибкость Hibernate.