如何为定义映射将设置为 enumType:'identity'

在Grails 3.3中,enumType成为Enums with id的必需项(对于3.2,它无需任何其他定义即可工作)。

使用枚举字段,一切工作正常,但我不知道如何为枚举集编写映射

class Test {
   Set<TestEnum> enums
   static mapping {
     enums  enumType: 'identity' // not works
   }
}

enum TestEnum {
   final int id
   TestEnum(int value){
   ...
   }
}

有任何想法吗?

我知道,我可以使用enumType:'string'。对我来说不是这样

最佳答案

解决方法是,您可以创建包装器实体:

class EnumWrapper {
    TestEnum testEnum
    static mapping {
        testEnum enumType: 'identity'
    }
    static belongsTo = [test: Test]
}

class Test {
   static hasMany = [enumWrappers: EnumWrapper]
}

enum TestEnum {
    final int id
    TestEnum(int value){
    ...
    }
}

10-08 07:50