关于如何在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中,我希望能够选择多个MyEnums并具有以下行:
<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 = {
  }
}

经过进一步的思考,我真的根本不需要坚持枚举类型。我只是想要保存该类型的值。

10-05 17:50