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 [main] 错误 context.ContextLoader - 上下文初始化失败 org.springframework.beans.factory.BeanCreationException:创建名为“messageSource”的 bean 时出错:bean 初始化失败;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名为“transactionManager”的 bean 时出错:设置 bean 属性“sessionFactory”时无法解析对 bean“sessionFactory”的引用;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名为“sessionFactory”的 bean 时出错:调用 init 方法失败;嵌套异常是 org.hibernate.MappingException:来自表 doc_group_permissions 的关联引用了一个未映射的类:java.util.BitSet

有没有人遇到过这个?

4

1 回答 1

0

并非所有类型都被映射 - 我认为这实际上是休眠方面的一个问题(ORM 层需要知道如何持久化它不知道的对象)。

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

您应该尝试查看是否有人为 BitSet 编写了休眠持久性,或者尝试使用不同的类。

于 2009-11-16T18:04:47.863 回答