Grails: GORM and BitSets?

3

我在官方文档中没有看到关于不支持的持久化数据类型的任何内容,因此我认为应该处理Groovy语言中可用的类型。但是对于以下领域类:

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:12,298 [主] 错误 context.ContextLoader - 上下文初始化失败 org.springframework.beans.factory.BeanCreationException:创建名为'messageSource'的bean时出错;嵌套异常是org.springframework.beans.factory.BeanCreationException:创建名为'transactionManager'的bean时无法解析对' sessionFactory '的引用,同时设置bean属性'sessionFactory';嵌套异常是org.springframework.beans.factory.BeanCreationException:创建名为'sessionFactory'的bean时调用init方法失败;嵌套异常是org.hibernate.MappingException:表doc_group_permissions中的一个关联引用了一个未映射的类:java.util.BitSet
有人遇到过这个问题吗?
1个回答

0

并非所有类型都被映射 - 我认为这更多是来自于Hibernate方面的问题(ORM层需要知道如何持久化它不知道的对象)。

请查看joda-time插件,它带有一个特殊库,将joda日期类映射到Hibernate中,然后您必须在映射闭包中指定它。

您应该尝试查看是否有人为BitSet编写了Hibernate持久器,或者尝试使用其他类。


你或者其他人知道在哪里可以找到官方的GORM映射类型集合吗? - Visionary Software Solutions
1
Robert Fisher在他的GORM/GSSQL书中提供了我见过的最完整的列表。 - JGFMK
如果您想要实现自己的内容,那么这里是一个起点:http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html_single/#types-custom-ut - JGFMK
1
这是关于与书籍相同的内容。http://www.java2s.com/Code/Java/Hibernate/JavaTypeVSHibernateType.htm - JGFMK

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接