在Grails中为唯一约束违规设置消息

时间:2012-08-19 06:01:53

标签: exception grails unique message gorm

在Grails中,

当违反特定的“唯一”约束时,我想设置上升的异常消息。

这可能吗?

2 个答案:

答案 0 :(得分:7)

参考中列出了用于每个约束的消息代码 该约束的页面,例如 http://grails.org/doc/latest/ref/Constraints/unique.html。从那以后 看起来像你需要的代码是

com.project.ModelName.fieldName.unique=blah 

您需要将com.project.ModelName.fileName替换为适当的值

感谢http://grails.1312388.n4.nabble.com/Custom-error-message-in-message-properties-td3335696.html

答案 1 :(得分:0)

只是为了更新给定的答案,上面甚至文档似乎都暗示:

此约束会影响架构生成。

  

错误代码:className.propertyName.unique

但是对于我的应用程序来说这不是真的,也许grails 3中的事情发生了变化。我尝试了一个令人厌倦的变化,并且没有成功仍然返回默认值。

面对此问题的任何人的解决方案都非常简单。

找到返回响应的默认条目:

在我的情况下,我有两个条目:

##default.not.unique.message=Property [{0}] of class [{1}] with value [{2}] must be unique
##default.not.unique.message={0} must be unique

通过在行的开头添加哈希并尝试再次保存记录来对它们进行评论。这次在我的网络界面上,我看到了实际的字段名称,而不是默认的grails消息。

  

unique.com.xxx.users.PhotosBean.imageSHa

我在messages.properties中添加了这个键的条目,发现一切正常。

请注意,它是挂起子类而不是实际的类,也许在我的情况下它是复杂的。

这些情况下的技巧是注释掉返回值的默认条目,然后在返回实际约束时重新启用。