javax.validation-验证上下文(用于缓存)

javax.validation-验证上下文(用于缓存),java,spring,hibernate,validation,Java,Spring,Hibernate,Validation,我使用Hibernate验证器运行javax.validation API定义的验证约束。一切都在春天里运行 我定义了自定义约束: @项目存在 @项目活动 @项目可评论 以及我的自定义验证器,这些验证器涵盖了上述约束 现在,我想验证以下DTO: public class Comment { private String content; @ProjectExists @ProjectActive @ProjectCommentable private String pr

我使用Hibernate验证器运行javax.validation API定义的验证约束。一切都在春天里运行

我定义了自定义约束:

  • @项目存在
  • @项目活动
  • @项目可评论
以及我的自定义验证器,这些验证器涵盖了上述约束

现在,我想验证以下DTO:

public class Comment {
  private String content;

  @ProjectExists
  @ProjectActive
  @ProjectCommentable
  private String projectName;
}
问题是每个验证器都必须运行数据库查询、查找项目并对其进行处理

我正在寻找解决方案,允许缓存项目,以前发现。最好的解决方案是在所有验证器之间共享类似“验证上下文”的内容,这样我就可以将项目设置为验证上下文

下一个问题是,在验证之后,DTO被转换为数据模型,因此必须再次调用“findprojectquery”。在这里也可以重用缓存的项目