日期范围验证 groovy grails

date range validation groovy grails

我是 groovy grails 的新手,因此我们将不胜感激。 我正在开发一个跟踪员工工作场所历史记录的 grails 应用程序。验证要求之一是员工的开始日期和结束日期持续时间不应重叠。这意味着 startDate..endDate 范围在每个员工的就业日期中应该是唯一的。 所以我的问题是我应该如何处理这个验证?它应该作为自定义验证器在静态约束块中完成还是应该在数据库级别完成?

虽然您对此的实施可能取决于您的特定需求,但对于您应该如何做到这一点没有绝对正确的答案。不过,有一个或另一个的充分理由:

  • 如果您要通过您的应用程序以外的方式导入数据(或以某种方式在您的数据库中创建数据),那么您要么必须在数据库中实施此验证,要么在您的应用程序中安全地处理无效数据。
  • 使用自定义验证器处理此验证(以及任何由此产生的错误)会容易得多。
  • 如果您在数据库中实施验证,您将不得不处理特定于数据库的错误,并且在刷新数据之前不会知道它是否有效不是。那对你来说并不顺利。

从我的角度来看,我只会在应用程序中实现验证器,然后有一种方法来处理从其他地方加载的无效数据。如果数据有效性是最重要的,那么我可能会在两个地方都实现验证器,100% 确定逻辑匹配!