2009-11-15 3 views
3

Я ничего не вижу в official documentation о неподдерживаемых типах данных о сохранении, поэтому я работаю в предположении, что типы, доступные на языке Groovy, должны обрабатываться. Однако, для следующего класса домена:Grails: GORM и BitSets?

class DocGroupPermissions { 

    Workgroup workgroup 
    Document document; 
    BitSet permissions = new BitSet(2) 

    void setPermissions(boolean canRead, boolean canWrite) { 
     setReadPermissions(canRead) 
     setWritePermissions(canWrite) 
    } 

    void setReadPermissions(boolean canRead) { 
     permissions.set(0,canRead) 
    } 
    void setWritePermissions(boolean canWrite) { 
     permissions.set(1,canWrite) 
    } 

    boolean getReadPermissions() { 
     return permissions.get(0) 
    } 

    boolean getWritePermissions() { 
     return permissions.get(1) 
    } 


    static belongsTo = [workgroup:Workgroup, document:Document] 

    static constraints = { 
     workgroup(nullable:false, blank:false) 
     document(nullable:false, blank:false) 
    } 
} 

Я получаю:

2009-11-15 16: 46: 12298 [главная] ERROR context.ContextLoader - инициализация контекста не удалось орг. springframework.beans.factory.BeanCreationException: Ошибка создания компонента с именем «messageSource»: Инициализация компонента не выполнена; Вложенное исключение - org.springframework.beans.factory.BeanCreationException: Ошибка создания bean-компонента с именем «transactionManager»: не удается разрешить ссылку на bean-файл sessionFactory при настройке bean-свойства «sessionFactory»; Вложенное исключение - org.springframework.beans.factory.BeanCreationException: ошибка при создании компонента с именем sessionFactory: вызов метода init не удался; вложенное исключение org.hibernate.MappingException: объединение из таблицы doc_group_permissions относится к классу неотображенного: java.util.BitSet

Кто-нибудь, прежде чем запустить в этом?

ответ

0

Не все типы сопоставлены - я думаю, что это скорее проблема со стороны спящего режима, на самом деле (слой ORM должен знать, как сохранить объекты, о которых он не знает).

Отъезд joda-time plugin, он поставляется со специальной библиотекой, которая сопоставляет классы летней даты для спящего режима, а затем вы должны указывать ее при отображении закрытия.

Вы должны попытаться выяснить, не написал ли кто-нибудь спящий режим для BitSet или попытался использовать другой класс.

+0

Вы знаете, где найти официальный набор сопоставленных типов GORM? –

+1

Роберт Фишер, вероятно, дал самый полный список, который я видел в его книге GORM/GSSQL. – JGFMK

+0

Если вы хотите реализовать свои собственные, то вот стартовая точка http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html_single/#types-custom-ut – JGFMK