【发布时间】:2011-11-18 16:09:44
【问题描述】:
我们正在寻找一个 Java 库/系统/包,它不仅可以进行基本验证,还可以进行关系验证。我们需要能够表达基于多个相关实体的验证标准。
大多数验证模型 Spring Validation、JSR303 专门针对 bean 属性的验证。但我们需要一些可以跨越 bean 的东西。
我们的要求是提出一种验证模型状态的方法,同时将验证逻辑外部化到 Java 代码之外。
在上面的定义中,一个 Bean 只是一个 POJO,一个模型是相关 Bean 的集合。因此,例如,如果 Account 有一组 Addresses 并且 Account.countryOfResidence 设置为 USA,我希望有一个验证规则来确保所有 Addresses 中都有一个美国国家/地区。
因此,在将地址添加到帐户的“操作”期间,将启动验证以确保 Address.country 与 Account.countryOfResidence 相同。
我们正在研究 DRULES,但想看看是否有其他可用选项。
对如何进行有什么建议吗?
【问题讨论】:
-
在您的上下文中,什么是模型,什么是“模型状态”,什么是验证?如果人们知道你在寻找什么,它可能会帮助他们找到答案。
-
为什么要避免使用 Java 进行验证? Java 似乎是最有表现力的语言,它有很多可用的 API,并且可以轻松访问 Java 对象。
-
你需要做什么样的“关系验证”?我怀疑你会找到任何预先制作的东西来做这样的事情,但你可能会在提到的 API 中编写自己的验证器。
-
我更新了问题以阐明模型的含义。
-
为什么需要“将验证逻辑从 java 代码中外部化”?我并不反对它——我通常可以猜到——但听听你的具体情况会很好。特别是 - 验证要求所表达的语言的元要求是什么。例如,“公众”等可读......
标签: java validation model relationship