我正在使用Hibernate验证器来运行javax.validation API定义的验证约束。一切都在春季3上运行。
我定义了自定义约束:
和我的自定义验证器,涵盖了上述约束。
现在我想验证以下DTO:
public class Comment {
private String content;
@ProjectExists
@ProjectActive
@ProjectCommentable
private String projectName;
}
问题是每个验证器都必须运行数据库查询,查找项目并使用它做一些事情。
我正在寻找允许缓存之前找到的项目的解决方案。最好的解决方案是在所有验证器之间共享类似“验证上下文”的内容,以便我可以将Project设置为验证上下文。
接下来的问题是,在验证DTO转换为数据模型之后,必须再次调用“查找项目查询”。在这里重用缓存项目会很好。