检查更新与添加的唯一性

我有一个名为sportID,sportName,运动员名字的POJO。 使用带注释的验证,我写了自己的注释约束来检查数据库中是否存在sportName。 它试图添加一个sportName时效果很好,但是如果我尝试在不更改sportName的情况下更新玩家,那么验证失败。

有没有办法在注释验证中传递参数? 例如,我想将sportID传递给sportName禁止检查,以便我可以在db查询中排除该ID。

或者有更好的方法来做到这一点? 在我的控制器中,我应该让Spring验证输入(使用@Valid),然后如果没有错误,请调用验证函数来检查业务规则?


更好的方法是使用验证组。 (Spring MVC和JSR-303验证组)

然后,您可以拥有默认验证组,而不使用“不存在验证器”。 并有一个额外的组合“不退出验证器”。 这将允许您仅在需要时触发“不退出验证程序”。 (不幸的是,它不是在Spring 3.0中直接支持的,你必须手动开始验证)

另一种方法不是像验证器那样实现验证器,而更像是类验证器。 - 看看在这个堆栈溢出问题中讨论的用于交叉字段验证的不同解决方案。 它会给你一个想法如何访问id字段。

链接地址: http://www.djcxy.com/p/10487.html

上一篇: Check for unique on update vs add

下一篇: Powershell and a path as an argument that is double