Сохраняющийся массив строк в одном столбце - PullRequest
2 голосов
/ 23 апреля 2010

Наш основной объект домена имеет несколько свойств string [] (различные параметры конфигурации), и мы думаем об элегантном способе сохранения данных. GORM создает объединенную таблицу для каждого массива, поэтому мы получаем около десятка объединенных таблиц.

Интересно, можно ли сериализовать каждый массив в один столбец главной таблицы (каким-то образом разделенный) и проанализировать его обратно в массив загрузки?

У вас есть предложения, как это сделать? Я думаю, что либо спящий пользовательский тип или редактор свойств Grails? Я провел некоторое время с пользовательскими типами, но без удачи.

спасибо рк

1 Ответ

1 голос
/ 26 апреля 2011

Вы можете поместить параметры в карту / массив, а затем сохранить их в поле базы данных как Json:

def someDomainInstance = new SomeDomain()
def paramMap = [name:'John', age:24]
someDomainInstance.paramJson = paramMap as JSON
someDomainInstance.save()

Затем вы можете легко преобразовать эту строку обратно в карту / массив при опросе БД:

def paramMapFromDB = JSON.parse(someDomainInstance.paramJson)
assertEquals 24, paramMapFromDB.age

Что-то в этом роде, я не проверял синтаксис, но это общая идея.

...