2009-11-15 17 views
3

Je ne vois rien dans le official documentation sur les types de données de persistance non pris en charge, donc je travaille sous l'hypothèse que les types disponibles dans le langage Groovy doivent être gérés. Cependant, pour la classe de domaine suivant:Grails: GORM et 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) 
    } 
} 

Je reçois:

2009-11-15 16: 46: 12298 [principal] ERREUR context.ContextLoader - initialisation du contexte n'a pas org . springframework.beans.factory.BeanCreationException: Erreur lors de la création du bean avec le nom 'messageSource': L'initialisation du bean a échoué; l'exception imbriquée est org.springframework.beans.factory.BeanCreationException: Erreur lors de la création du bean avec le nom 'transactionManager': Impossible de résoudre la référence au bean 'sessionFactory' lors de la définition de la propriété bean 'sessionFactory'; l'exception imbriquée est org.springframework.beans.factory.BeanCreationException: Erreur lors de la création du bean avec le nom 'sessionFactory': l'invocation de la méthode init a échoué; exception imbriquée est org.hibernate.MappingException: Une association de la table doc_group_permissions fait référence à une classe unmapped: java.util.BitSet

Quelqu'un at-il rencontré ce avant?

Répondre

0

Tous les types ne sont pas mappés - je pense que c'est plus un problème du côté de l'hibernation, en fait (la couche ORM doit savoir comment conserver les objets qu'elle ne connaît pas).

Jetez un coup d'œil au joda-time plugin, il est fourni avec une bibliothèque spéciale qui mappe les classes joda Dates pour hiberner, et vous devez ensuite le spécifier dans la fermeture du mappage.

Vous devriez essayer de voir si quelqu'un a écrit une persistance d'hibernation pour BitSet, ou essayez d'utiliser une classe différente.

+0

Est-ce que vous ou quelqu'un d'autre savez où trouver un ensemble officiel de types de cartes GORM? –

+1

Robert Fisher a probablement donné la liste la plus complète que j'ai vu dans son livre GORM/GSSQL. – JGFMK

+0

Si vous voulez mettre en œuvre votre propre, voici un point de départ http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html_single/#types-custom-ut – JGFMK