简体   繁体   English

Hibernate 验证找不到提供程序

[英]Hibernate validation can't find provider

I'm trying to use the Hibernate validator, with Java 11, but it can't seem to find the proper combination of dependencies.我正在尝试使用 Hibernate 验证器和 Java 11,但它似乎找不到正确的依赖组合。 I have the following dependencies我有以下依赖项

   <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
            <version>2.0.1.Final</version>
        </dependency>

        <dependency>
            <groupId>org.hibernate.validator</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>8.0.0.Final</version>
        </dependency>
        
        <dependency>
            <groupId>org.glassfish.expressly</groupId>
            <artifactId>expressly</artifactId>
            <version>5.0.0</version>
        </dependency>

I get this error:我收到此错误:

Caused by: javax.validation.NoProviderFoundException: Unable to create a Configuration, because no Bean Validation provider could be found. Add a provider like Hibernate Validator (RI) to your classpath.

I can't seem to find the right combination that works我似乎找不到合适的组合

The code I'm using is我正在使用的代码是

Validator VALIDATOR = Validation.buildDefaultValidatorFactory().getValidator();
Set<ConstraintViolation<T>> constraintViolations = VALIDATOR.validate(object);

hibernate-validator has been moved to group org.hibernate.validator hibernate-validator 已移至组 org.hibernate.validator

<!-- https://mvnrepository.com/artifact/org.hibernate.validator/hibernate-validator -->
<dependency>
    <groupId>org.hibernate.validator</groupId>
    <artifactId>hibernate-validator</artifactId>
    <version>8.0.0.Final</version>
</dependency>


Hibernate Validator 8 is based on Jakarta. Hibernate Validator 8 基于 Jakarta。 this means that if you want to use it you should add这意味着如果你想使用它,你应该添加

<dependency>
    <groupId>jakarta.validation</groupId>
    <artifactId>jakarta.validation-api</artifactId>
    <version>3.0.2</version>
</dependency>

instead of代替

<dependency>
    <groupId>javax.validation</groupId>
    <artifactId>validation-api</artifactId>
    <version>2.0.1.Final</version>
dependency>

if you want to use the javax classes then you need to go with latest 6.2 version of hibernate validator如果你想使用 javax 类,那么你需要 go 和最新的 6.2 版本的 hibernate 验证器

see here for 8.0 documentation - https://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/#validator-gettingstarted-createproject请参阅此处获取 8.0 文档 - https://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/#validator-gettingstarted-createproject

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM