Как заставить Грааля использовать правильный тип столбца в MySQL для поля карты
-
18-09-2019 - |
Вопрос
У меня есть проблема в Граале 1.1.2 + MySQL.
Мой класс доменов что -то содержит поле
Map<String, Map<Integer, Integer>> priceMap
Когда я запускаю приложение, Grails создает таблицу «что-то» и подтел. 'Something_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.
Есть ли какой -либо способ указать ограничение максимального размера для внутренней карты (карта), так что Grails использует MediumBlob или Blobk вместо TinyBlob?
Кстати ... Используя в MEM DB, все работает нормально.
Решение
Как вы, возможно, знаете, есть Ограничение картирования для класса домена. Однако ваша проблема может быть слишком сложной для этой функциональности.
В таких случаях вы можете указать Явное отображение сгибания (через файл HBM) для класса домена. Это позволяет полной гибкости Hibernate.