Как сохранить список <String>в одном столбце, используя GORM и Hibernate? - PullRequest
3 голосов
/ 08 февраля 2012

Я хочу сохранить поле List в одном столбце VARCHAR, используя Grails с GORM и Hibernate.Я написал собственный тип Hibernate, но не могу понять, как заставить GORM / Hibernate обрабатывать поле списка как постоянное:

class User {
    List<String> listOfStrings
    static mapping = {
        listOfStrings(type: StringListType, length: 512)
    }
}

Отображение listOfStrings игнорируется.Есть идеи?На данный момент я решил эту проблему, используя дополнительное поле String и набор / get для кодирования и декодирования списка.

1 Ответ

2 голосов
/ 09 февраля 2012

Раньше я не писал пользовательских типов, но одна мысль, которую я хотел бы для вас, - сделать listOfStrings временной переменной и иметь обработчик событий для маршалинга и отмены маршалинга списка строк для вас. Например. onLoad может сделать listOfStrings = internalVarName.split(), а onUpdate может сделать internalVarName = listOfStrings.join(' ').

Другая идея заключается в том, чтобы заключить List of Strings в ваш собственный тип, поскольку GORM может иметь специальную обработку для ассоциаций, которая включает в себя определенный код для типов. Я не знаю это на самом деле, просто спекулировать.

...