我使用hibernate
.Under grails 1.3.7
一切正常Grails应用程序,但是当我切换到grails 2.0.3
出现以下问题:Grails的唯一约束
我不能java/src
目录下检查是否有独特的领域。如果我尝试使用相同的唯一键添加或更新任何记录,则会出现批量插入错误。
在src/groovy
我创建一个类来检查验证:
Example: LanguageCommand.groovy
package myproject.command
import org.codehaus.groovy.grails.validation.Validateable;
@Validateable
class LanguageCommand {
String code
String codeDescription
static constraints= {
code(blank:false, maxSize:50)
codeDescription(maxSize:200)
}
}
和src/java
下,我创建一个类来检查独特的领域
Example: LanguageConstraints.groovy
package myproject.model
constraints = {
code unique: true
}
其中myproject.model
是包含包的名称休眠类。
注:Validation class works fine but the unique one not. i try to add unique constraints to validation class, same error appears
错误:
Error 500: Executing action [save] of controller
[myproject.controller.LanguageController]
caused exception: Runtime error executing action
Servlet: grails
URI: /myproject/grails/language/save.dispatch
Exception Message: Batch entry 0 insert into language
(language_code, code_description, version, id)
values (en, English, 0, 1) was aborted.
Call getNextException to see the cause.
Caused by: Batch entry 0 insert into language
(language_code, code_description, version, id)
values (en, English, 0, 1) was aborted.
Call getNextException to see the cause.
Class: LanguageController
At Line: [125]
Code Snippet:
任何帮助吗?
你为什么要在'src/java'中放一个'.groovy'类? – 2012-07-25 12:08:42
用于测试唯一约束,因为http://grails.org/doc/latest/guide/hibernate.html#addingConstraints – 2012-07-25 12:33:47