如何修复Grails错误:"找不到名称PrivacyOptions的域类.请重试并输入有效的域类名称"

26 dns grails class

我刚开始使用Groovy/Grails.

我为我的项目添加了一个新的域控制器,而generate-controller不喜欢它.

还有其他迹象表明存在错误:如果我运行应用程序,则实际上没有在数据库中为此创建表.

我已经将DomainController简化为一个String字段而没有约束,只是为了确保我的规范没有问题.我也尝试重命名它,以防万一有与原始名称相冲突的原始名称(隐私).

我确定我有正确的名称,并且该文件名为PrivacyOptions.groovy,并且该类内部也称为PrivacyOptions.

这是错误:

Running script /opt/local/grails/scripts/GenerateController.groovy
Environment set to development
Domain class not found in grails-app/domain, trying hibernate mapped classes...
No domain class found for name PrivacyOptions. Please try again and enter a valid domain class name
Run Code Online (Sandbox Code Playgroud)

Tim*_*ell 60

在模型名称之前添加项目名称(也就是模型文件第一行的包名称).

grails generate-all projectname.Class
Run Code Online (Sandbox Code Playgroud)

经过一个小时的头部刮擦和谷歌搜索,这是最终为我工作的那个.

参考:http://grails.1312388.n4.nabble.com/Generate-Scaffold-Scripts-Don-t-Work-Getting-No-domain-class-found-Error-td2017858.html#a2017880

从1.2.2开始,Grails在默认为项目名称的包中创建工件 - 请参阅http://jira.codehaus.org/browse/GRAILS-5713 所以你需要运行grails generate-all srapp.Srmodel - Burt


小智 10

它不是projectname.Class,它必须是dirname.classname.

例如:您的项目名称是Helloworld,目录是"grails-app/domain/helloworld/User.groovy".所以,命令是"grails generate-all helloworld.User",但不是"Helloworld.User"