mal*_*alc 7 grails groovy static-members
以前关于此错误的问题是指hibernate版本问题或运行测试.我认为这不是这种情况.
在Grails服务课程中,我有:
private static User anon = User.findByUsername('anonymous')
Run Code Online (Sandbox Code Playgroud)
这就是创建错误:
Caused by IllegalStateException: Method on class [User] was used outside of a Grails application. If running in the context of a test using the mocking API or bootstrap Grails correctly.
Run Code Online (Sandbox Code Playgroud)
我试图用存储在数据库中的对象实例化私有静态属性,但我必须做一些非常错误的事情.感谢您的任何帮助,建议和指示.
这样做是行不通的static,因为它会findByUsername在加载服务类时尝试进行调用,这是在GrailsApplication初始化过程完成之前.最早可以可靠地调用GORM方法的是BootStrap,所以我倾向于在这些情况下做的是在服务上创建一个初始化方法,然后从BootStrapinit闭包调用该方法.