hibernate - 如何在 Grails 中持久保存枚举集合?

标签 hibernate grails grails-orm

关于如何在 Grails 中保存枚举集合有什么想法吗?

Groovy 枚举:

public enum MyEnum {
  AAA('Aaa'),
  BEE('Bee'),
  CEE('Cee')
  String description
  MyEnum(String description) {
    this.description = description
  }
  static belongsTo = [tester:Tester]
}

我想在 Grails 域类中使用此枚举。域类如下所示:

class Tester {
  static hasMany = [myenums: MyEnum]
  static constraints = {
  }
}

在我的 create.jsp 中,我希望能够选择多个 MyEnum 并具有以下行:

<g:select  from="${MyEnum?.values()}" multiple="multiple" value="${testerInstance?.myenums}" name="myenums" ></g:select>`

我遇到的问题是,当我尝试创建新的测试器时,我收到 500 错误:

Exception Message: java.lang.String cannot be cast to java.lang.Enum
Caused by: java.lang.String cannot be cast to java.lang.Enum
Class: TesterController 

最佳答案

因此,简单的解决方法是将域类更改为使用 myenums 变量的 MyEnum 枚举类型。相反,我将其更改为字符串,一切都开始工作。

class Tester {
  static hasMany = [myenums:String]
  static constraints = {
  }
}

经过进一步思考,我真的没有必要坚持枚举类型。我只想保存该类型的值。

关于hibernate - 如何在 Grails 中持久保存枚举集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2330051/

相关文章:

java - 在 spring 项目中使用 hibernate 工具

java - CAS - Spring Security 3.1 书

java - 如何在不将完整文件加载到内存的情况下将大文件插入 BLOB (Oracle)?

Grails 不被识别为内部或外部命令 (Windows 7)

grails - 无法从列表中删除

grails - 如何通过加入非主键列来创建关联

java - 使用 hibernate 从数据库访问值时出现异常

jquery - Grails ajax 获得成功和错误

grails - 在开发中更改 Grails 域类时如何避免丢失数据库

grails - 在 Grails 应用程序的数据库中存储和使用应用程序配置设置?