首页 > 解决方案 > 即使仅使用父类,也会在继承的类上触发 Hibernate 自定义验证

问题描述

我有一个使用休眠 5 的应用程序,它对继承的类进行休眠验证,例如:

家长班

public class ParentPojo {

    private String parentField1;
    private String parentField2;
    // ...
}

继承类

@SomeCustomClassValidation 
public class inheritedPojo extends ParentPojo {
    @ValidNumber
    private String number;
    // ...
}

在我仅创建然后保存父对象(因此在此示例中为 ParentPojo)的事务之一中,由于某种原因,我看到一个问题,即当我的事务结束时 BeanValidationEventLisenter 调用继承类的验证,这当然会失败,因为从未创建继承的类。我一直在网上浏览其他文章和文档,试图找出可能的原因,并找出我是否缺少需要配置的东西,以确保仅在持久化的对象上发生验证/在交易中受到影响。

如果应用程序使用它们,休眠事件侦听器是否会根据 hbm 文件决定验证哪些类?我想它会知道,因为只有 .save() 被调用为 ParentPojo 它会知道只在这个类上寻找验证。
任何帮助,将不胜感激!

标签: springhibernatehibernate-validator

解决方案


推荐阅读