Grails 2.2
所以这应该很容易,但是我不断收到相同的错误消息:
Class java.lang.IllegalArgumentException
Message No enum constant myPackageName.RequestType.Banner
这是我的类(class):
public enum RequestType {
BANNER("Banner"), OTHER("Other")
final String value
RequestType(String value) { this.value = value }
String toString() { value }
}
这让我抓狂!!
编辑:堆栈跟踪
No enum constant myPackageName.RequestType.Banner. Stacktrace follows:
java.lang.IllegalArgumentException: No enum constant myPackageName.RequestType.Banner
at java.lang.Enum.valueOf(Enum.java:236)
at org.grails.datastore.gorm.GormStaticApi.methodMissing(GormStaticApi.groovy:108)
at ysuprojects.ProjectService.viewableProjects(ProjectService.groovy:115)
at ysuprojects.ProjectService.getIndexModel(ProjectService.groovy:422)
at ysuprojects.ProjectController.index(ProjectController.groovy:25)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
以下是它在类中的使用方式
class Project {
...
RequestType requestType
...
}
最佳答案
好的 - 这就是发生的事情。
我从使用String
改为使用Enum
。现有数据库的字段中有“Banner”
,这导致了此错误。我将该字段更改为“BANNER”
,并且不再收到此错误。
Grails 试图执行 Enum.valueOf(RequestType, "Banner")
关于grails - 如何创建与 Grails 一起使用的枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14385144/