休眠验证 - 与其他对象进行比较

时间:2014-11-21 18:12:27

标签: java hibernate validation

请原谅我在这里缺乏理解,因为我大约三天都进入了Hibernate。

我试图在实体上添加验证,要求将它们与另一个实体进行比较。

例如,选择一个Person实体。 Person可以有多个BodyPart个,但最多只有BodyPart个类型" arm" (除了突变)。要验证这一点,在插入新的BodyPart时,我需要将其与给定BodyPart的其他Person进行比较,并验证该类型的最大值是否已经过去

我一直在关注Hibernate提供的Constraint / Validation内容,但似乎没有一个覆盖这种情况。这是通常的做法吗?它有更好/不同的解决方案吗?这真的是非标准需求吗?

2 个答案:

答案 0 :(得分:2)

Hibernate验证和JSR 303一般不包括此类场景。引入它们是为了提供对@NotNull,@ Min等约束的简单快速验证。 你必须编写一些自定义验证器类。

就我个人而言,我并没有多少使用JSR 303,因为迟早会遇到这样的要求,最终会在许多地方分散验证代码。我更喜欢在一个软件包中进行验证,并完全与域模型分离。

答案 1 :(得分:0)

你可以尝试一个数组,让第一个条目为“arm”(它将是Array [0]并用循环检查它,它不超过值2,对于leg tail(1)也是如此以及你想要的任何其他东西。