Hibernatate没有绑定枚举

时间:2014-05-15 14:57:48

标签: grails gorm

从Grails 2.2.4更新到Grails 2.3.7后,在我的域中绑定的枚举停止工作。

我无法弄清楚发生了什么,有人可以给我一个暗示吗?

2 个答案:

答案 0 :(得分:1)

可能有一些特定的方面被打破,如果你能够识别,请报告一个JIRA,我们可以查看它,但一般来说,枚举绑定在Grails 2.3.7中有效。使这项工作的简单方法是使请求参数的名称与您要绑定的枚举属性的名称相匹配,并且值是枚举实例的String表示形式。例如,如果您有以下内容......

// grails-app/domain/com/demo/Company.groovy
class Company {
    Status companyStatus
    // ...
}

// src/groovy/com/demo/Status.groovy
enum Status {
    ACTIVE, INACTIVE
}

然后,如果将companyStatus ='INACTIVE'或companyStatus ='ACTIVE'绑定到Company对象,那应该可以。

我刚刚在https://github.com/jeffbrown/enumbinding创建了一个示例应用,它演示了在Grails 2.3.7中工作。运行应用程序并在默认索引页面上提交表单以查看其运行情况。

我希望有所帮助。

答案 1 :(得分:-1)

作为一项规则,请记住,您也希望优化查找,并且ENUM的索引将被编入索引,这将比外键长索引查找慢。

我已多次进行过这样的讨论,唯一的理由就是你将减少必须改变的数据,但是由于这次一次权衡,日常使用会受到影响。